export interface ServiceAccessSecurityGroups {
    /** The security groups that allow service access. */
    securityGroups?: string[];
}
export interface LicenseInfo {
    /** The VCF solution key. This license unlocks VMware VCF product features, including vSphere, NSX, SDDC Manager, and vCenter Server. The VCF solution key must cover a minimum of 256 cores. */
    solutionKey: string;
    /** The VSAN license key. This license unlocks vSAN features. The vSAN license key must provide at least 110 TiB of vSAN capacity. */
    vsanKey: string;
}
export interface InitialVlanInfo {
    /** The CIDR block that you provide to create an Amazon EVS VLAN subnet. Amazon EVS VLAN subnets have a minimum CIDR block size of /28 and a maximum size of /24. Amazon EVS VLAN subnet CIDR blocks must no */
    cidr: string;
}
export interface InitialVlans {
    /** The host VMkernel management VLAN subnet. This VLAN subnet carries traffic for managing ESX hosts and communicating with VMware vCenter Server. */
    vmkManagement: InitialVlanInfo;
    /** The VM management VLAN subnet. This VLAN subnet carries traffic for vSphere virtual machines. */
    vmManagement: InitialVlanInfo;
    /** The vMotion VLAN subnet. This VLAN subnet carries traffic for vSphere vMotion. */
    vMotion: InitialVlanInfo;
    /** The vSAN VLAN subnet. This VLAN subnet carries the communication between ESX hosts to implement a vSAN shared storage pool. */
    vSan: InitialVlanInfo;
    /** The VTEP VLAN subnet. This VLAN subnet handles internal network traffic between virtual machines within a VCF instance. */
    vTep: InitialVlanInfo;
    /** The edge VTEP VLAN subnet. This VLAN subnet manages traffic flowing between the internal network and external networks, including internet access and other site connections. */
    edgeVTep: InitialVlanInfo;
    /** The NSX uplink VLAN subnet. This VLAN subnet allows connectivity to the NSX overlay network. */
    nsxUplink: InitialVlanInfo;
    /** The HCX VLAN subnet. This VLAN subnet allows the HCX Interconnnect (IX) and HCX Network Extension (NE) to reach their peers and enable HCX Service Mesh creation. If you plan to use a public HCX VLAN s */
    hcx: InitialVlanInfo;
    /** An additional VLAN subnet that can be used to extend VCF capabilities once configured. For example, you can configure an expansion VLAN subnet to use NSX Federation for centralized management and sync */
    expansionVlan1: InitialVlanInfo;
    /** An additional VLAN subnet that can be used to extend VCF capabilities once configured. For example, you can configure an expansion VLAN subnet to use NSX Federation for centralized management and sync */
    expansionVlan2: InitialVlanInfo;
    /** Determines if the HCX VLAN that Amazon EVS provisions is public or private. */
    isHcxPublic?: boolean;
    /** A unique ID for a network access control list that the HCX VLAN uses. Required when isHcxPublic is set to true. */
    hcxNetworkAclId?: string;
}
export interface HostInfoForCreate {
    /** The DNS hostname of the host. DNS hostnames for hosts must be unique across Amazon EVS environments and within VCF. */
    hostName: string;
    /** The name of the SSH key that is used to access the host. */
    keyName: string;
    /** The EC2 instance type that represents the host. Currently, Amazon EVS supports only the i4i.metal instance type. */
    instanceType: 'i4i.metal';
    /** The unique ID of the placement group where the host is placed. */
    placementGroupId?: string;
    /** The unique ID of the Amazon EC2 Dedicated Host. */
    dedicatedHostId?: string;
}
export interface ConnectivityInfo {
    /** The unique IDs for private route server peers. */
    privateRouteServerPeerings: string[];
}
export interface VcfHostnames {
    /** The VMware vCenter hostname. */
    vCenter: string;
    /** The VMware NSX hostname. */
    nsx: string;
    /** The hostname for the first VMware NSX Manager virtual machine (VM). */
    nsxManager1: string;
    /** The hostname for the second VMware NSX Manager virtual machine (VM). */
    nsxManager2: string;
    /** The hostname for the third VMware NSX Manager virtual machine (VM). */
    nsxManager3: string;
    /** The hostname for the first NSX Edge node. */
    nsxEdge1: string;
    /** The hostname for the second NSX Edge node. */
    nsxEdge2: string;
    /** The hostname for SDDC Manager. */
    sddcManager: string;
    /** The hostname for VMware Cloud Builder. */
    cloudBuilder: string;
}
export interface AssociateEipToVlanInput {
    /** The Elastic IP address allocation ID. */
    allocationId: string;
    /** A unique ID for the environment containing the VLAN that the Elastic IP address associates with. */
    environmentId: string;
    /** The name of the VLAN. hcx is the only accepted VLAN name at this time. */
    vlanName: string;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
}
export interface CreateEnvironmentInput {
    /** The connectivity configuration for the environment. Amazon EVS requires that you specify two route server peer IDs. During environment creation, the route server endpoints peer with the NSX edges over */
    connectivityInfo: ConnectivityInfo;
    /** The ESX hosts to add to the environment. Amazon EVS requires that you provide details for a minimum of 4 hosts during environment creation. For each host, you must provide the desired hostname, EC2 SS */
    hosts: HostInfoForCreate[];
    /** The initial VLAN subnets for the Amazon EVS environment. For each Amazon EVS VLAN subnet, you must specify a non-overlapping CIDR block. Amazon EVS VLAN subnets have a minimum CIDR block size of /28 a */
    initialVlans: InitialVlans;
    /** The license information that Amazon EVS requires to create an environment. Amazon EVS requires two license keys: a VCF solution key and a vSAN license key. The VCF solution key must cover a minimum of */
    licenseInfo: LicenseInfo[];
    /** The subnet that is used to establish connectivity between the Amazon EVS control plane and VPC. Amazon EVS uses this subnet to validate mandatory DNS records for your VCF appliances and hosts and crea */
    serviceAccessSubnetId: string;
    /** The Broadcom Site ID that is allocated to you as part of your electronic software delivery. This ID allows customer access to the Broadcom portal, and is provided to you by Broadcom at the close of yo */
    siteId: string;
    /** Customer confirmation that the customer has purchased and will continue to maintain the required number of VCF software licenses to cover all physical processor cores in the Amazon EVS environment. In */
    termsAccepted: boolean;
    /** The DNS hostnames for the virtual machines that host the VCF management appliances. Amazon EVS requires that you provide DNS hostnames for the following appliances: vCenter, NSX Manager, SDDC Manager, */
    vcfHostnames: VcfHostnames;
    /** The VCF version to use for the environment. */
    vcfVersion: 'VCF-5.2.1' | 'VCF-5.2.2';
    /** A unique ID for the VPC that the environment is deployed inside. Amazon EVS requires that all VPC subnets exist in a single Availability Zone in a Region where the service is available. The VPC that y */
    vpcId: string;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
    /** The name to give to your environment. The name can contain only alphanumeric characters (case-sensitive), hyphens, and underscores. It must start with an alphanumeric character, and can't be longer th */
    environmentName?: string;
    /** A unique ID for the customer-managed KMS key that is used to encrypt the VCF credential pairs for SDDC Manager, NSX Manager, and vCenter appliances. These credentials are stored in Amazon Web Services */
    kmsKeyId?: string;
    /** The security group that controls communication between the Amazon EVS control plane and VPC. The default security group is used if a custom security group isn't specified. The security group should al */
    serviceAccessSecurityGroups?: ServiceAccessSecurityGroups;
    /** Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or Amazon Web Services resource */
    tags?: Record<string, string>;
}
export interface CreateEnvironmentHostInput {
    /** A unique ID for the environment that the host is added to. */
    environmentId: string;
    /** The host that is created and added to the environment. */
    host: HostInfoForCreate;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
    /** The ESX version to use for the host. */
    esxVersion?: string;
}
export interface DeleteEnvironmentInput {
    /** A unique ID associated with the environment to be deleted. */
    environmentId: string;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
}
export interface DeleteEnvironmentHostInput {
    /** A unique ID for the host's environment. */
    environmentId: string;
    /** The DNS hostname associated with the host to be deleted. */
    hostName: string;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
}
export interface DisassociateEipFromVlanInput {
    /** A unique ID for the Elastic IP address association. */
    associationId: string;
    /** A unique ID for the environment containing the VLAN that the Elastic IP address disassociates from. */
    environmentId: string;
    /** The name of the VLAN. hcx is the only accepted VLAN name at this time. */
    vlanName: string;
    /** This parameter is not used in Amazon EVS currently. If you supply input for this parameter, it will have no effect. A unique, case-sensitive identifier that you provide to ensure the idempotency of th */
    clientToken?: string;
}
export interface GetEnvironmentInput {
    /** A unique ID for the environment. */
    environmentId: string;
}
export interface ListEnvironmentHostsInput {
    /** A unique ID for the environment. */
    environmentId: string;
    /** The maximum number of results to return. If you specify MaxResults in the request, the response includes information up to the limit specified. */
    maxResults?: number;
    /** A unique pagination token for each page. If nextToken is returned, there are more results available. Make the call again using the returned token with all other arguments unchanged to retrieve the nex */
    nextToken?: string;
}
export interface ListEnvironmentsInput {
    /** The maximum number of results to return. If you specify MaxResults in the request, the response includes information up to the limit specified. */
    maxResults?: number;
    /** A unique pagination token for each page. If nextToken is returned, there are more results available. Make the call again using the returned token with all other arguments unchanged to retrieve the nex */
    nextToken?: string;
    /** The state of an environment. Used to filter response results to return only environments with the specified environmentState. */
    state?: 'CREATING' | 'CREATED' | 'DELETING' | 'DELETED' | 'CREATE_FAILED'[];
}
export interface ListEnvironmentVlansInput {
    /** A unique ID for the environment. */
    environmentId: string;
    /** The maximum number of results to return. If you specify MaxResults in the request, the response includes information up to the limit specified. */
    maxResults?: number;
    /** A unique pagination token for each page. If nextToken is returned, there are more results available. Make the call again using the returned token with all other arguments unchanged to retrieve the nex */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) that identifies the resource to list tags for. */
    resourceArn: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to add tags to. */
    resourceArn: string;
    /** Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other environment or Amazon Web Services reso */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to delete tags from. */
    resourceArn: string;
    /** The keys of the tags to delete. */
    tagKeys: string[];
}
/** evs service binding for Step Functions SDK integrations. */
export declare class evs {
    constructor();
    associateEipToVlan<T>(params: AssociateEipToVlanInput): Promise<T>;
    createEnvironment<T>(params: CreateEnvironmentInput): Promise<T>;
    createEnvironmentHost<T>(params: CreateEnvironmentHostInput): Promise<T>;
    deleteEnvironment<T>(params: DeleteEnvironmentInput): Promise<T>;
    deleteEnvironmentHost<T>(params: DeleteEnvironmentHostInput): Promise<T>;
    disassociateEipFromVlan<T>(params: DisassociateEipFromVlanInput): Promise<T>;
    getEnvironment<T>(params: GetEnvironmentInput): Promise<T>;
    getVersions<T>(params: Record<string, any>): Promise<T>;
    listEnvironmentHosts<T>(params: ListEnvironmentHostsInput): Promise<T>;
    listEnvironments<T>(params: ListEnvironmentsInput): Promise<T>;
    listEnvironmentVlans<T>(params: ListEnvironmentVlansInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=evs.d.ts.map