import * as core from "@terrascript/core"; export interface OidcArgs extends core.SchemaArgs { issuer: string | core.StringOut; } export class Oidc extends core.Schema { @core.attr(String, { computed: true }) public issuer!: string | core.StringOut; } export interface IdentityArgs extends core.SchemaArgs { oidc: core.Array | core.ArrayOut; } export class Identity extends core.Schema { @core.attr(Oidc, { computed: true, kind: "array" }) public oidc!: core.Array | core.ArrayOut; } export interface KubernetesNetworkConfigArgs extends core.SchemaArgs { ipFamily: string | core.StringOut; serviceIpv4Cidr: string | core.StringOut; } export class KubernetesNetworkConfig extends core.Schema { @core.attr(String, { computed: true }) public ipFamily!: string | core.StringOut; @core.attr(String, { computed: true }) public serviceIpv4Cidr!: string | core.StringOut; } export interface CertificateAuthorityArgs extends core.SchemaArgs { data: string | core.StringOut; } export class CertificateAuthority extends core.Schema { @core.attr(String, { computed: true }) public data!: string | core.StringOut; } export interface VpcConfigArgs extends core.SchemaArgs { clusterSecurityGroupId: string | core.StringOut; endpointPrivateAccess: boolean | core.BooleanOut; endpointPublicAccess: boolean | core.BooleanOut; publicAccessCidrs: core.Array | core.ArrayOut; securityGroupIds: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; vpcId: string | core.StringOut; } export class VpcConfig extends core.Schema { @core.attr(String, { computed: true }) public clusterSecurityGroupId!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public endpointPrivateAccess!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public endpointPublicAccess!: boolean | core.BooleanOut; @core.attr(String, { computed: true, kind: "array" }) public publicAccessCidrs!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface DsClusterArgs { /** * (Required) The name of the cluster. Must be between 1-100 characters in length. Must begin with an a * lphanumeric character, and must only contain alphanumeric characters, dashes and underscores (`^[0-9 * A-Za-z][A-Za-z0-9\-_]+$`). */ name: string | core.StringOut; /** * Key-value map of resource tags. */ tags?: core.Map | core.MapOut; } export class DsCluster extends core.Data { /** * The Amazon Resource Name (ARN) of the cluster. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Nested attribute containing `certificate-authority-data` for your cluster. */ @core.attr(CertificateAuthority, { computed: true, kind: "array" }) public certificateAuthority!: | core.Array | core.ArrayOut; /** * The Unix epoch time stamp in seconds for when the cluster was created. */ @core.attr(String, { computed: true }) public createdAt!: string | core.StringOut; /** * The enabled control plane logs. */ @core.attr(String, { computed: true, kind: "array" }) public enabledClusterLogTypes!: | core.Array | core.ArrayOut; /** * The endpoint for your Kubernetes API server. */ @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; /** * The name of the cluster */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Nested attribute containing identity provider information for your cluster. Only available on Kubern * etes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. For an exampl * e using this information to enable IAM Roles for Service Accounts, see the [`aws_eks_cluster` resour * ce documentation](/docs/providers/aws/r/eks_cluster.html). */ @core.attr(Identity, { computed: true, kind: "array" }) public identity!: core.Array | core.ArrayOut; /** * Nested list containing Kubernetes Network Configuration. */ @core.attr(KubernetesNetworkConfig, { computed: true, kind: "array" }) public kubernetesNetworkConfig!: | core.Array | core.ArrayOut; /** * (Required) The name of the cluster. Must be between 1-100 characters in length. Must begin with an a * lphanumeric character, and must only contain alphanumeric characters, dashes and underscores (`^[0-9 * A-Za-z][A-Za-z0-9\-_]+$`). */ @core.attr(String) public name!: string | core.StringOut; /** * The platform version for the cluster. */ @core.attr(String, { computed: true }) public platformVersion!: string | core.StringOut; /** * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control * plane to make calls to AWS API operations on your behalf. */ @core.attr(String, { computed: true }) public roleArn!: string | core.StringOut; /** * The status of the EKS cluster. One of `CREATING`, `ACTIVE`, `DELETING`, `FAILED`. */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * Key-value map of resource tags. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * The Kubernetes server version for the cluster. */ @core.attr(String, { computed: true }) public version!: string | core.StringOut; /** * Nested list containing VPC configuration for the cluster. */ @core.attr(VpcConfig, { computed: true, kind: "array" }) public vpcConfig!: core.Array | core.ArrayOut; constructor(name: string, args?: DsClusterArgs) { super(name, "aws_eks_cluster", args); } public override getNamespace(): string { return "aws_eks"; } }