// *** 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 GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetInputArgs : global::Pulumi.ResourceArgs
    {
        [Input("authentications", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAuthenticationInputArgs>? _authentications;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAuthenticationInputArgs> Authentications
        {
            get => _authentications ?? (_authentications = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAuthenticationInputArgs>());
            set => _authentications = value;
        }

        [Input("awsAccountAuthentications", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAwsAccountAuthenticationInputArgs>? _awsAccountAuthentications;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAwsAccountAuthenticationInputArgs> AwsAccountAuthentications
        {
            get => _awsAccountAuthentications ?? (_awsAccountAuthentications = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAwsAccountAuthenticationInputArgs>());
            set => _awsAccountAuthentications = value;
        }

        [Input("azureServicePrincipalAuthentications", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAzureServicePrincipalAuthenticationInputArgs>? _azureServicePrincipalAuthentications;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAzureServicePrincipalAuthenticationInputArgs> AzureServicePrincipalAuthentications
        {
            get => _azureServicePrincipalAuthentications ?? (_azureServicePrincipalAuthentications = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetAzureServicePrincipalAuthenticationInputArgs>());
            set => _azureServicePrincipalAuthentications = value;
        }

        [Input("certificateAuthentications", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetCertificateAuthenticationInputArgs>? _certificateAuthentications;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetCertificateAuthenticationInputArgs> CertificateAuthentications
        {
            get => _certificateAuthentications ?? (_certificateAuthentications = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetCertificateAuthenticationInputArgs>());
            set => _certificateAuthentications = value;
        }

        [Input("clusterCertificate", required: true)]
        public Input<string> ClusterCertificate { get; set; } = null!;

        [Input("clusterUrl", required: true)]
        public Input<string> ClusterUrl { get; set; } = null!;

        [Input("containers", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetContainerInputArgs>? _containers;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetContainerInputArgs> Containers
        {
            get => _containers ?? (_containers = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetContainerInputArgs>());
            set => _containers = value;
        }

        [Input("defaultWorkerPoolId", required: true)]
        public Input<string> DefaultWorkerPoolId { get; set; } = null!;

        [Input("endpoints", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetEndpointInputArgs>? _endpoints;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetEndpointInputArgs> Endpoints
        {
            get => _endpoints ?? (_endpoints = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetEndpointInputArgs>());
            set => _endpoints = value;
        }

        [Input("environments", required: true)]
        private InputList<string>? _environments;

        /// <summary>
        /// A list of environment IDs associated with this resource.
        /// </summary>
        public InputList<string> Environments
        {
            get => _environments ?? (_environments = new InputList<string>());
            set => _environments = value;
        }

        [Input("gcpAccountAuthentications", required: true)]
        private InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetGcpAccountAuthenticationInputArgs>? _gcpAccountAuthentications;
        public InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetGcpAccountAuthenticationInputArgs> GcpAccountAuthentications
        {
            get => _gcpAccountAuthentications ?? (_gcpAccountAuthentications = new InputList<Inputs.GetKubernetesClusterDeploymentTargetsKubernetesClusterDeploymentTargetGcpAccountAuthenticationInputArgs>());
            set => _gcpAccountAuthentications = value;
        }

        [Input("hasLatestCalamari", required: true)]
        public Input<bool> HasLatestCalamari { get; set; } = null!;

        /// <summary>
        /// Represents the health status of this deployment target. Valid health statuses are `HasWarnings`, `Healthy`, `Unavailable`, `Unhealthy`, or `Unknown`.
        /// </summary>
        [Input("healthStatus", required: true)]
        public Input<string> HealthStatus { get; set; } = null!;

        /// <summary>
        /// The unique ID for this resource.
        /// </summary>
        [Input("id", required: true)]
        public Input<string> Id { get; set; } = null!;

        /// <summary>
        /// A filter to search by the disabled status of a resource.
        /// </summary>
        [Input("isDisabled", required: true)]
        public Input<bool> IsDisabled { get; set; } = null!;

        [Input("isInProcess", required: true)]
        public Input<bool> IsInProcess { get; set; } = null!;

        [Input("machinePolicyId", required: true)]
        public Input<string> MachinePolicyId { get; set; } = null!;

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

        [Input("namespace", required: true)]
        public Input<string> Namespace { get; set; } = null!;

        [Input("operatingSystem", required: true)]
        public Input<string> OperatingSystem { get; set; } = null!;

        [Input("proxyId", required: true)]
        public Input<string> ProxyId { get; set; } = null!;

        [Input("roles", required: true)]
        private InputList<string>? _roles;

        /// <summary>
        /// A filter to search by a list of role IDs.
        /// </summary>
        public InputList<string> Roles
        {
            get => _roles ?? (_roles = new InputList<string>());
            set => _roles = value;
        }

        [Input("runningInContainer", required: true)]
        public Input<bool> RunningInContainer { get; set; } = null!;

        [Input("shellName", required: true)]
        public Input<string> ShellName { get; set; } = null!;

        [Input("shellVersion", required: true)]
        public Input<string> ShellVersion { get; set; } = null!;

        [Input("skipTlsVerification", required: true)]
        public Input<bool> SkipTlsVerification { get; set; } = null!;

        /// <summary>
        /// The space ID associated with this resource.
        /// </summary>
        [Input("spaceId", required: true)]
        public Input<string> SpaceId { get; set; } = null!;

        /// <summary>
        /// The status of this resource. Valid statuses are `CalamariNeedsUpgrade`, `Disabled`, `NeedsUpgrade`, `Offline`, `Online`, or `Unknown`.
        /// </summary>
        [Input("status", required: true)]
        public Input<string> Status { get; set; } = null!;

        /// <summary>
        /// A summary elaborating on the status of this resource.
        /// </summary>
        [Input("statusSummary", required: true)]
        public Input<string> StatusSummary { get; set; } = null!;

        [Input("tenantTags", required: true)]
        private InputList<string>? _tenantTags;

        /// <summary>
        /// A list of tenant tags associated with this resource.
        /// </summary>
        public InputList<string> TenantTags
        {
            get => _tenantTags ?? (_tenantTags = new InputList<string>());
            set => _tenantTags = value;
        }

        /// <summary>
        /// The tenanted deployment mode of the resource. Valid account types are `Untenanted`, `TenantedOrUntenanted`, or `Tenanted`.
        /// </summary>
        [Input("tenantedDeploymentParticipation", required: true)]
        public Input<string> TenantedDeploymentParticipation { get; set; } = null!;

        [Input("tenants", required: true)]
        private InputList<string>? _tenants;

        /// <summary>
        /// A list of tenant IDs associated with this resource.
        /// </summary>
        public InputList<string> Tenants
        {
            get => _tenants ?? (_tenants = new InputList<string>());
            set => _tenants = value;
        }

        /// <summary>
        /// The thumbprint of the deployment target to match in the query and/or search
        /// </summary>
        [Input("thumbprint", required: true)]
        public Input<string> Thumbprint { get; set; } = null!;

        [Input("uri", required: true)]
        public Input<string> Uri { get; set; } = null!;

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