This is the AWS CloudFormation reference for Amazon Elastic VMware Service, the infrastructure-as-code path for provisioning an EVS environment. I owned this reference alongside the EVS API reference and the user guide, documenting the same complex networking, licensing, and host configuration as a declarative CloudFormation resource for template authors.
Project context
EVS deploys VMware Cloud Foundation onto AWS infrastructure, and many customers provision that infrastructure as code rather than through the console or API directly. CloudFormation is the AWS-native way to declare that deployment in a repeatable template.
The AWS::EVS::Environment resource exposes the full environment-creation surface — VLAN subnets, host details, connectivity, licenses, service access, VCF hostnames, version, and VPC configuration — as typed template properties. Each property needs clear required/optional status, constraints, update behavior, and relationship guidance for template authors.
My role and ownership
I authored the EVS CloudFormation reference for public preview, general availability, and the HCX public-connectivity launch, in parallel with the EVS API reference and user guide.
Because I also participated in API design and authored the API reference, I kept the CloudFormation property documentation consistent with the API surface while adapting it for a declarative template model. A customer reading the API reference and a customer writing a CloudFormation template should see the same constraints described in the language of the surface they are using.
What the work solved
Declarative provisioning. Template authors got a complete property reference for provisioning EVS environments through CloudFormation instead of reverse-engineering the resource shape from API behavior. Cross-surface consistency. The same validation rules, constraints, and resource relationships were documented consistently across the API reference, CloudFormation reference, and user guide. Template-author clarity. The reference made required properties, patterns, allowed values, and update behavior explicit so customers could understand what had to be set at creation time and what could not be changed later.
What this sample demonstrates
- Infrastructure-as-code reference documentation for a complex CloudFormation resource
- Translating API operation inputs into declarative template properties for template authors
- Cross-surface consistency between API, CloudFormation, and user-guide documentation
- Clear documentation of typed properties, constraints, patterns, allowed values, and update behavior
- Resource-lifecycle guidance that helps customers understand what must be configured at creation time
Live documentation
- Amazon EVS resource type reference (CloudFormation Template Reference)
AWS::EVS::Environmentresource specification — archived snapshot- Create Amazon EVS resources with AWS CloudFormation (user guide)
Documentation excerpt (curated)
AWS::EVS::Environment
Creates an Amazon EVS environment that runs VCF software, such as SDDC Manager, NSX Manager, and vCenter Server.
During environment creation, Amazon EVS performs validations on DNS settings, provisions VLAN subnets and hosts, and deploys the supplied version of VCF.
Syntax (JSON, trimmed to selected properties)
{
"Type": "AWS::EVS::Environment",
"Properties": {
"ConnectivityInfo": ConnectivityInfo,
"Hosts": [ HostInfoForCreate, ... ],
"InitialVlans": InitialVlans,
"LicenseInfo": LicenseInfo,
"ServiceAccessSubnetId": String,
"VcfHostnames": VcfHostnames,
"VcfVersion": String,
"VpcId": String
}
}
Properties (selected)
InitialVlans
The initial VLAN subnets for the environment. 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 not overlap with other subnets in the VPC.
Required for environment resource creation.
- Required: Conditional
- Type: InitialVlans
- Update requires: Updates are not supported.
ServiceAccessSubnetId
The subnet that is used to establish connectivity between the Amazon EVS control plane and VPC. Amazon EVS uses this subnet to perform validations and create the environment.
- Required: Yes
- Type: String
- Pattern:
^subnet-[a-f0-9]{8}([a-f0-9]{9})?$ - Minimum: 15
- Maximum: 24
- Update requires: Updates are not supported.
VcfVersion
The VCF version of the environment.
- Required: Yes
- Type: String
- Allowed values:
VCF-5.2.1 | VCF-5.2.2 - Update requires: Updates are not supported.