diff --git a/cloudformation/global/api.go b/cloudformation/global/api.go index b46cf09b2a..a620295844 100644 --- a/cloudformation/global/api.go +++ b/cloudformation/global/api.go @@ -55,6 +55,11 @@ type Api struct { // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-description Description *string `json:"Description,omitempty"` + // Domain AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-domain + Domain *serverless.Api_DomainConfiguration `json:"Domain,omitempty"` + // EndpointConfiguration AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi diff --git a/cloudformation/serverless/aws-serverless-api.go b/cloudformation/serverless/aws-serverless-api.go index 1e236598a4..09a7fc3c19 100644 --- a/cloudformation/serverless/aws-serverless-api.go +++ b/cloudformation/serverless/aws-serverless-api.go @@ -64,6 +64,11 @@ type Api struct { // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-description Description *string `json:"Description,omitempty"` + // Domain AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-domain + Domain *Api_DomainConfiguration `json:"Domain,omitempty"` + // EndpointConfiguration AWS CloudFormation Property // Required: false // See: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapi diff --git a/cloudformation/serverless/aws-serverless-api_domainconfiguration.go b/cloudformation/serverless/aws-serverless-api_domainconfiguration.go new file mode 100644 index 0000000000..b494b7df5b --- /dev/null +++ b/cloudformation/serverless/aws-serverless-api_domainconfiguration.go @@ -0,0 +1,72 @@ +// Code generated by "go generate". Please don't change this file directly. + +package serverless + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Api_DomainConfiguration AWS CloudFormation Resource (AWS::Serverless::Api.DomainConfiguration) +// See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html +type Api_DomainConfiguration struct { + + // BasePath AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-basepath + BasePath *[]string `json:"BasePath,omitempty"` + + // CertificateArn AWS CloudFormation Property + // Required: true + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-certificatearn + CertificateArn string `json:"CertificateArn"` + + // DomainName AWS CloudFormation Property + // Required: true + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-domainname + DomainName string `json:"DomainName"` + + // EndpointConfiguration AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-endpointconfiguration + EndpointConfiguration *string `json:"EndpointConfiguration,omitempty"` + + // MutualTlsAuthentication AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-mutualtlsauthentication + MutualTlsAuthentication *Api_MutualTlsAuthentication `json:"MutualTlsAuthentication,omitempty"` + + // OwnershipVerificationCertificateArn AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-ownershipverificationcertificatearn + OwnershipVerificationCertificateArn *string `json:"OwnershipVerificationCertificateArn,omitempty"` + + // Route53 AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-route53 + Route53 *Api_Route53Configuration `json:"Route53,omitempty"` + + // SecurityPolicy AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-securitypolicy + SecurityPolicy *string `json:"SecurityPolicy,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Api_DomainConfiguration) AWSCloudFormationType() string { + return "AWS::Serverless::Api.DomainConfiguration" +} diff --git a/cloudformation/serverless/aws-serverless-api_mutualtlsauthentication.go b/cloudformation/serverless/aws-serverless-api_mutualtlsauthentication.go new file mode 100644 index 0000000000..ca8d043e1a --- /dev/null +++ b/cloudformation/serverless/aws-serverless-api_mutualtlsauthentication.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package serverless + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Api_MutualTlsAuthentication AWS CloudFormation Resource (AWS::Serverless::Api.MutualTlsAuthentication) +// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html +type Api_MutualTlsAuthentication struct { + + // TruststoreUri AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreuri + TruststoreUri *string `json:"TruststoreUri,omitempty"` + + // TruststoreVersion AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreversion + TruststoreVersion *string `json:"TruststoreVersion,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Api_MutualTlsAuthentication) AWSCloudFormationType() string { + return "AWS::Serverless::Api.MutualTlsAuthentication" +} diff --git a/cloudformation/serverless/aws-serverless-api_route53configuration.go b/cloudformation/serverless/aws-serverless-api_route53configuration.go new file mode 100644 index 0000000000..8976ea6dc4 --- /dev/null +++ b/cloudformation/serverless/aws-serverless-api_route53configuration.go @@ -0,0 +1,57 @@ +// Code generated by "go generate". Please don't change this file directly. + +package serverless + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Api_Route53Configuration AWS CloudFormation Resource (AWS::Serverless::Api.Route53Configuration) +// See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html +type Api_Route53Configuration struct { + + // DistributedDomainName AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-distributiondomainname + DistributedDomainName *string `json:"DistributedDomainName,omitempty"` + + // EvaluateTargetHealth AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-evaluatetargethealth + EvaluateTargetHealth *bool `json:"EvaluateTargetHealth,omitempty"` + + // HostedZoneId AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzoneid + HostedZoneId *string `json:"HostedZoneId,omitempty"` + + // HostedZoneName AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzonename + HostedZoneName *string `json:"HostedZoneName,omitempty"` + + // IpV6 AWS CloudFormation Property + // Required: false + // See: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-ipv6 + IpV6 *bool `json:"IpV6,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Api_Route53Configuration) AWSCloudFormationType() string { + return "AWS::Serverless::Api.Route53Configuration" +} diff --git a/generate/sam-2016-10-31.json b/generate/sam-2016-10-31.json index b859c28aa8..32d3db5fac 100644 --- a/generate/sam-2016-10-31.json +++ b/generate/sam-2016-10-31.json @@ -411,6 +411,12 @@ "Type": "Map", "PrimitiveItemType": "String", "UpdateType": "Immutable" + }, + "Domain": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-domain", + "Required": false, + "Type": "DomainConfiguration", + "UpdateType": "Immutable" } } }, @@ -1978,6 +1984,112 @@ } } }, + "AWS::Serverless::Api.Route53Configuration": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html", + "Properties": { + "DistributedDomainName": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-distributiondomainname", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "EvaluateTargetHealth": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-evaluatetargethealth", + "Required": false, + "PrimitiveType": "Boolean", + "UpdateType": "Immutable" + }, + "HostedZoneId": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzoneid", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "HostedZoneName": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-hostedzonename", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "IpV6": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html#sam-api-route53configuration-ipv6", + "Required": false, + "PrimitiveType": "Boolean", + "UpdateType": "Immutable" + } + } + }, + "AWS::Serverless::Api.MutualTlsAuthentication": { + "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html", + "Properties": { + "TruststoreUri": { + "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreuri", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "TruststoreVersion": { + "Documentation": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreversion", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + } + } + }, + "AWS::Serverless::Api.DomainConfiguration": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html", + "Properties": { + "BasePath": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-basepath", + "Required": false, + "Type": "List", + "ItemType": "String", + "UpdateType": "Immutable" + }, + "CertificateArn": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-certificatearn", + "Required": true, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "DomainName": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-domainname", + "Required": true, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "EndpointConfiguration": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-endpointconfiguration", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "MutualTlsAuthentication": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-mutualtlsauthentication", + "Required": false, + "Type": "MutualTlsAuthentication", + "UpdateType": "Immutable" + }, + "OwnershipVerificationCertificateArn": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-ownershipverificationcertificatearn", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + }, + "Route53": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-route53", + "Required": false, + "Type": "Route53Configuration", + "UpdateType": "Immutable" + }, + "SecurityPolicy": { + "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html#sam-api-domainconfiguration-securitypolicy", + "Required": false, + "PrimitiveType": "String", + "UpdateType": "Immutable" + } + } + }, "AWS::Serverless::Api.EndpointConfiguration": { "Documentation": "https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html", "Properties": { diff --git a/schema/sam.go b/schema/sam.go index a660bcd406..5e530a081c 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -123985,6 +123985,9 @@ var SamSchema = `{ "Description": { "type": "string" }, + "Domain": { + "$ref": "#/definitions/AWS::Serverless::Api.DomainConfiguration" + }, "EndpointConfiguration": { "$ref": "#/definitions/AWS::Serverless::Api.EndpointConfiguration" }, @@ -124144,6 +124147,43 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Serverless::Api.DomainConfiguration": { + "additionalProperties": false, + "properties": { + "BasePath": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateArn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "type": "string" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::Serverless::Api.MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, + "Route53": { + "$ref": "#/definitions/AWS::Serverless::Api.Route53Configuration" + }, + "SecurityPolicy": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "type": "object" + }, "AWS::Serverless::Api.EndpointConfiguration": { "additionalProperties": false, "properties": { @@ -124159,6 +124199,39 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Serverless::Api.MutualTlsAuthentication": { + "additionalProperties": false, + "properties": { + "TruststoreUri": { + "type": "string" + }, + "TruststoreVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Serverless::Api.Route53Configuration": { + "additionalProperties": false, + "properties": { + "DistributedDomainName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "IpV6": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::Serverless::Api.S3Location": { "additionalProperties": false, "properties": { @@ -134587,6 +134660,9 @@ var SamSchema = `{ "Description": { "type": "string" }, + "Domain": { + "$ref": "#/definitions/AWS::Serverless::Api.DomainConfiguration" + }, "EndpointConfiguration": { "$ref": "#/definitions/AWS::Serverless::Api.EndpointConfiguration" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 96c682f4fc..b29664b36a 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -123980,6 +123980,9 @@ "Description": { "type": "string" }, + "Domain": { + "$ref": "#/definitions/AWS::Serverless::Api.DomainConfiguration" + }, "EndpointConfiguration": { "$ref": "#/definitions/AWS::Serverless::Api.EndpointConfiguration" }, @@ -124139,6 +124142,43 @@ ], "type": "object" }, + "AWS::Serverless::Api.DomainConfiguration": { + "additionalProperties": false, + "properties": { + "BasePath": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateArn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "type": "string" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::Serverless::Api.MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, + "Route53": { + "$ref": "#/definitions/AWS::Serverless::Api.Route53Configuration" + }, + "SecurityPolicy": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "type": "object" + }, "AWS::Serverless::Api.EndpointConfiguration": { "additionalProperties": false, "properties": { @@ -124154,6 +124194,39 @@ }, "type": "object" }, + "AWS::Serverless::Api.MutualTlsAuthentication": { + "additionalProperties": false, + "properties": { + "TruststoreUri": { + "type": "string" + }, + "TruststoreVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Serverless::Api.Route53Configuration": { + "additionalProperties": false, + "properties": { + "DistributedDomainName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "IpV6": { + "type": "boolean" + } + }, + "type": "object" + }, "AWS::Serverless::Api.S3Location": { "additionalProperties": false, "properties": { @@ -134582,6 +134655,9 @@ "Description": { "type": "string" }, + "Domain": { + "$ref": "#/definitions/AWS::Serverless::Api.DomainConfiguration" + }, "EndpointConfiguration": { "$ref": "#/definitions/AWS::Serverless::Api.EndpointConfiguration" },