// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace PiersKarsenbarg.Octopusdeploy.Inputs
{

    public sealed class GetVariablesVariableArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// The description of this variable.
        /// </summary>
        [Input("description", required: true)]
        public string Description { get; set; } = null!;

        [Input("encryptedValue", required: true)]
        public string EncryptedValue { get; set; } = null!;

        /// <summary>
        /// Indicates whether or not this variable is considered editable.
        /// </summary>
        [Input("isEditable", required: true)]
        public bool IsEditable { get; set; }

        /// <summary>
        /// Indicates whether or not this resource is considered sensitive and should be kept secret.
        /// </summary>
        [Input("isSensitive", required: true)]
        public bool IsSensitive { get; set; }

        [Input("keyFingerprint", required: true)]
        public string KeyFingerprint { get; set; } = null!;

        /// <summary>
        /// The name of this resource.
        /// </summary>
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        [Input("ownerId", required: true)]
        public string OwnerId { get; set; } = null!;

        [Input("pgpKey", required: true)]
        private string? _pgpKey;
        public string? PgpKey
        {
            get => _pgpKey;
            set => _pgpKey = value;
        }

        [Input("projectId", required: true)]
        public string ProjectId { get; set; } = null!;

        [Input("prompts", required: true)]
        private List<Inputs.GetVariablesVariablePromptArgs>? _prompts;
        public List<Inputs.GetVariablesVariablePromptArgs> Prompts
        {
            get => _prompts ?? (_prompts = new List<Inputs.GetVariablesVariablePromptArgs>());
            set => _prompts = value;
        }

        [Input("scopes", required: true)]
        private List<Inputs.GetVariablesVariableScopeArgs>? _scopes;
        public List<Inputs.GetVariablesVariableScopeArgs> Scopes
        {
            get => _scopes ?? (_scopes = new List<Inputs.GetVariablesVariableScopeArgs>());
            set => _scopes = value;
        }

        [Input("sensitiveValue", required: true)]
        private string? _sensitiveValue;
        public string? SensitiveValue
        {
            get => _sensitiveValue;
            set => _sensitiveValue = value;
        }

        /// <summary>
        /// The type of variable represented by this resource. Valid types are `AmazonWebServicesAccount`, `AzureAccount`, `GoogleCloudAccount`, `Certificate`, `Sensitive`, `String`, or `WorkerPool`.
        /// </summary>
        [Input("type", required: true)]
        public string Type { get; set; } = null!;

        [Input("value", required: true)]
        public string Value { get; set; } = null!;

        public GetVariablesVariableArgs()
        {
        }
        public static new GetVariablesVariableArgs Empty => new GetVariablesVariableArgs();
    }
}
