diff --git a/cloudformation/all.go b/cloudformation/all.go index 1519c7f277..8f9b17cc83 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -189,6 +189,7 @@ import ( "github.com/awslabs/goformation/v6/cloudformation/ssmincidents" "github.com/awslabs/goformation/v6/cloudformation/sso" "github.com/awslabs/goformation/v6/cloudformation/stepfunctions" + "github.com/awslabs/goformation/v6/cloudformation/supportapp" "github.com/awslabs/goformation/v6/cloudformation/synthetics" "github.com/awslabs/goformation/v6/cloudformation/timestream" "github.com/awslabs/goformation/v6/cloudformation/transfer" @@ -411,6 +412,7 @@ func AllResources() map[string]Resource { "AWS::Connect::ContactFlow": &connect.ContactFlow{}, "AWS::Connect::ContactFlowModule": &connect.ContactFlowModule{}, "AWS::Connect::HoursOfOperation": &connect.HoursOfOperation{}, + "AWS::Connect::Instance": &connect.Instance{}, "AWS::Connect::PhoneNumber": &connect.PhoneNumber{}, "AWS::Connect::QuickConnect": &connect.QuickConnect{}, "AWS::Connect::TaskTemplate": &connect.TaskTemplate{}, @@ -1115,6 +1117,8 @@ func AllResources() map[string]Resource { "AWS::Signer::SigningProfile": &signer.SigningProfile{}, "AWS::StepFunctions::Activity": &stepfunctions.Activity{}, "AWS::StepFunctions::StateMachine": &stepfunctions.StateMachine{}, + "AWS::SupportApp::AccountAlias": &supportapp.AccountAlias{}, + "AWS::SupportApp::SlackChannelConfiguration": &supportapp.SlackChannelConfiguration{}, "AWS::Synthetics::Canary": &synthetics.Canary{}, "AWS::Synthetics::Group": &synthetics.Group{}, "AWS::Timestream::Database": ×tream.Database{}, @@ -6083,6 +6087,30 @@ func (t *Template) GetConnectHoursOfOperationWithName(name string) (*connect.Hou return nil, fmt.Errorf("resource %q of type connect.HoursOfOperation not found", name) } +// GetAllConnectInstanceResources retrieves all connect.Instance items from an AWS CloudFormation template +func (t *Template) GetAllConnectInstanceResources() map[string]*connect.Instance { + results := map[string]*connect.Instance{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.Instance: + results[name] = resource + } + } + return results +} + +// GetConnectInstanceWithName retrieves all connect.Instance items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectInstanceWithName(name string) (*connect.Instance, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.Instance: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.Instance not found", name) +} + // GetAllConnectPhoneNumberResources retrieves all connect.PhoneNumber items from an AWS CloudFormation template func (t *Template) GetAllConnectPhoneNumberResources() map[string]*connect.PhoneNumber { results := map[string]*connect.PhoneNumber{} @@ -22979,6 +23007,54 @@ func (t *Template) GetStepFunctionsStateMachineWithName(name string) (*stepfunct return nil, fmt.Errorf("resource %q of type stepfunctions.StateMachine not found", name) } +// GetAllSupportAppAccountAliasResources retrieves all supportapp.AccountAlias items from an AWS CloudFormation template +func (t *Template) GetAllSupportAppAccountAliasResources() map[string]*supportapp.AccountAlias { + results := map[string]*supportapp.AccountAlias{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *supportapp.AccountAlias: + results[name] = resource + } + } + return results +} + +// GetSupportAppAccountAliasWithName retrieves all supportapp.AccountAlias items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSupportAppAccountAliasWithName(name string) (*supportapp.AccountAlias, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *supportapp.AccountAlias: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type supportapp.AccountAlias not found", name) +} + +// GetAllSupportAppSlackChannelConfigurationResources retrieves all supportapp.SlackChannelConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllSupportAppSlackChannelConfigurationResources() map[string]*supportapp.SlackChannelConfiguration { + results := map[string]*supportapp.SlackChannelConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *supportapp.SlackChannelConfiguration: + results[name] = resource + } + } + return results +} + +// GetSupportAppSlackChannelConfigurationWithName retrieves all supportapp.SlackChannelConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSupportAppSlackChannelConfigurationWithName(name string) (*supportapp.SlackChannelConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *supportapp.SlackChannelConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type supportapp.SlackChannelConfiguration not found", name) +} + // GetAllSyntheticsCanaryResources retrieves all synthetics.Canary items from an AWS CloudFormation template func (t *Template) GetAllSyntheticsCanaryResources() map[string]*synthetics.Canary { results := map[string]*synthetics.Canary{} diff --git a/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go b/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go index 5da33ae914..c4464811a4 100644 --- a/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go +++ b/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html type GatewayRoute_GatewayRouteTarget struct { + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html#cfn-appmesh-gatewayroute-gatewayroutetarget-port + Port *int `json:"Port,omitempty"` + // VirtualService AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html#cfn-appmesh-gatewayroute-gatewayroutetarget-virtualservice diff --git a/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go b/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go index 4eae8dfe3f..c45ebd0384 100644 --- a/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go +++ b/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go @@ -20,6 +20,11 @@ type GatewayRoute_GrpcGatewayRouteMatch struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-metadata Metadata *[]GatewayRoute_GrpcGatewayRouteMetadata `json:"Metadata,omitempty"` + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-port + Port *int `json:"Port,omitempty"` + // ServiceName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-servicename diff --git a/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go b/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go index 0c7f1ef685..64bacc9c7f 100644 --- a/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go +++ b/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go @@ -30,6 +30,11 @@ type GatewayRoute_HttpGatewayRouteMatch struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-path Path *GatewayRoute_HttpPathMatch `json:"Path,omitempty"` + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-port + Port *int `json:"Port,omitempty"` + // Prefix AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-prefix diff --git a/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go b/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go index c696558f36..756cb80542 100644 --- a/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go +++ b/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go @@ -20,6 +20,11 @@ type Route_GrpcRouteMatch struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-methodname MethodName *string `json:"MethodName,omitempty"` + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-port + Port *int `json:"Port,omitempty"` + // ServiceName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-servicename diff --git a/cloudformation/appmesh/aws-appmesh-route_httproutematch.go b/cloudformation/appmesh/aws-appmesh-route_httproutematch.go index a959ef9ddd..7ee85b9204 100644 --- a/cloudformation/appmesh/aws-appmesh-route_httproutematch.go +++ b/cloudformation/appmesh/aws-appmesh-route_httproutematch.go @@ -25,6 +25,11 @@ type Route_HttpRouteMatch struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-path Path *Route_HttpPathMatch `json:"Path,omitempty"` + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-port + Port *int `json:"Port,omitempty"` + // Prefix AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-prefix diff --git a/cloudformation/appmesh/aws-appmesh-route_tcproute.go b/cloudformation/appmesh/aws-appmesh-route_tcproute.go index 3acc0984a1..d24eb86959 100644 --- a/cloudformation/appmesh/aws-appmesh-route_tcproute.go +++ b/cloudformation/appmesh/aws-appmesh-route_tcproute.go @@ -15,6 +15,11 @@ type Route_TcpRoute struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-action Action *Route_TcpRouteAction `json:"Action"` + // Match AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-match + Match *Route_TcpRouteMatch `json:"Match,omitempty"` + // Timeout AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-timeout diff --git a/cloudformation/appmesh/aws-appmesh-route_tcproutematch.go b/cloudformation/appmesh/aws-appmesh-route_tcproutematch.go new file mode 100644 index 0000000000..6904ece730 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-route_tcproutematch.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appmesh + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Route_TcpRouteMatch AWS CloudFormation Resource (AWS::AppMesh::Route.TcpRouteMatch) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproutematch.html +type Route_TcpRouteMatch struct { + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproutematch.html#cfn-appmesh-route-tcproutematch-port + Port *int `json:"Port,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 *Route_TcpRouteMatch) AWSCloudFormationType() string { + return "AWS::AppMesh::Route.TcpRouteMatch" +} diff --git a/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go b/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go index 777577b3c4..1badc7bc16 100644 --- a/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go +++ b/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html type Route_WeightedTarget struct { + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-port + Port *int `json:"Port,omitempty"` + // VirtualNode AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-virtualnode diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_jsonformatref.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_jsonformatref.go new file mode 100644 index 0000000000..f1d24d2df1 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_jsonformatref.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appmesh + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// VirtualGateway_JsonFormatRef AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.JsonFormatRef) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-jsonformatref.html +type VirtualGateway_JsonFormatRef struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-jsonformatref.html#cfn-appmesh-virtualgateway-jsonformatref-key + Key string `json:"Key"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-jsonformatref.html#cfn-appmesh-virtualgateway-jsonformatref-value + Value string `json:"Value"` + + // 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 *VirtualGateway_JsonFormatRef) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.JsonFormatRef" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_loggingformat.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_loggingformat.go new file mode 100644 index 0000000000..cbe4402c31 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_loggingformat.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appmesh + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// VirtualGateway_LoggingFormat AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.LoggingFormat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-loggingformat.html +type VirtualGateway_LoggingFormat struct { + + // Json AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-loggingformat.html#cfn-appmesh-virtualgateway-loggingformat-json + Json *[]VirtualGateway_JsonFormatRef `json:"Json,omitempty"` + + // Text AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-loggingformat.html#cfn-appmesh-virtualgateway-loggingformat-text + Text *string `json:"Text,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 *VirtualGateway_LoggingFormat) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualGateway.LoggingFormat" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go index 8471c2dc76..619c7289f2 100644 --- a/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go +++ b/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html type VirtualGateway_VirtualGatewayFileAccessLog struct { + // Format AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html#cfn-appmesh-virtualgateway-virtualgatewayfileaccesslog-format + Format *VirtualGateway_LoggingFormat `json:"Format,omitempty"` + // Path AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html#cfn-appmesh-virtualgateway-virtualgatewayfileaccesslog-path diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go b/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go index 0359220cf7..fe71a63553 100644 --- a/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html type VirtualNode_FileAccessLog struct { + // Format AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html#cfn-appmesh-virtualnode-fileaccesslog-format + Format *VirtualNode_LoggingFormat `json:"Format,omitempty"` + // Path AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html#cfn-appmesh-virtualnode-fileaccesslog-path diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_jsonformatref.go b/cloudformation/appmesh/aws-appmesh-virtualnode_jsonformatref.go new file mode 100644 index 0000000000..a8b771aa2b --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_jsonformatref.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appmesh + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// VirtualNode_JsonFormatRef AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.JsonFormatRef) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-jsonformatref.html +type VirtualNode_JsonFormatRef struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-jsonformatref.html#cfn-appmesh-virtualnode-jsonformatref-key + Key string `json:"Key"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-jsonformatref.html#cfn-appmesh-virtualnode-jsonformatref-value + Value string `json:"Value"` + + // 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 *VirtualNode_JsonFormatRef) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.JsonFormatRef" +} diff --git a/cloudformation/appmesh/aws-appmesh-virtualnode_loggingformat.go b/cloudformation/appmesh/aws-appmesh-virtualnode_loggingformat.go new file mode 100644 index 0000000000..e70167e827 --- /dev/null +++ b/cloudformation/appmesh/aws-appmesh-virtualnode_loggingformat.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package appmesh + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// VirtualNode_LoggingFormat AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.LoggingFormat) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-loggingformat.html +type VirtualNode_LoggingFormat struct { + + // Json AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-loggingformat.html#cfn-appmesh-virtualnode-loggingformat-json + Json *[]VirtualNode_JsonFormatRef `json:"Json,omitempty"` + + // Text AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-loggingformat.html#cfn-appmesh-virtualnode-loggingformat-text + Text *string `json:"Text,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 *VirtualNode_LoggingFormat) AWSCloudFormationType() string { + return "AWS::AppMesh::VirtualNode.LoggingFormat" +} diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go b/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go index 13e6c52e45..700335973b 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go @@ -35,6 +35,11 @@ type Distribution_Origin struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-id Id string `json:"Id"` + // OriginAccessControlId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originaccesscontrolid + OriginAccessControlId *string `json:"OriginAccessControlId,omitempty"` + // OriginCustomHeaders AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-origincustomheaders diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go index 5ff62d11f6..5085b212b9 100644 --- a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go @@ -35,6 +35,11 @@ type ResponseHeadersPolicy_ResponseHeadersPolicyConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-securityheadersconfig SecurityHeadersConfig *ResponseHeadersPolicy_SecurityHeadersConfig `json:"SecurityHeadersConfig,omitempty"` + // ServerTimingHeadersConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-servertimingheadersconfig + ServerTimingHeadersConfig *ResponseHeadersPolicy_ServerTimingHeadersConfig `json:"ServerTimingHeadersConfig,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_servertimingheadersconfig.go b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_servertimingheadersconfig.go new file mode 100644 index 0000000000..13fb259f28 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_servertimingheadersconfig.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package cloudfront + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// ResponseHeadersPolicy_ServerTimingHeadersConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-servertimingheadersconfig.html +type ResponseHeadersPolicy_ServerTimingHeadersConfig struct { + + // Enabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-servertimingheadersconfig.html#cfn-cloudfront-responseheaderspolicy-servertimingheadersconfig-enabled + Enabled bool `json:"Enabled"` + + // SamplingRate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-servertimingheadersconfig.html#cfn-cloudfront-responseheaderspolicy-servertimingheadersconfig-samplingrate + SamplingRate *float64 `json:"SamplingRate,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 *ResponseHeadersPolicy_ServerTimingHeadersConfig) AWSCloudFormationType() string { + return "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" +} diff --git a/cloudformation/config/aws-config-conformancepack.go b/cloudformation/config/aws-config-conformancepack.go index 54907fe08c..dfffcb6cf9 100644 --- a/cloudformation/config/aws-config-conformancepack.go +++ b/cloudformation/config/aws-config-conformancepack.go @@ -43,6 +43,11 @@ type ConformancePack struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templates3uri TemplateS3Uri *string `json:"TemplateS3Uri,omitempty"` + // TemplateSSMDocumentDetails AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templatessmdocumentdetails + TemplateSSMDocumentDetails *interface{} `json:"TemplateSSMDocumentDetails,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/connect/aws-connect-instance.go b/cloudformation/connect/aws-connect-instance.go new file mode 100644 index 0000000000..e519f5d95a --- /dev/null +++ b/cloudformation/connect/aws-connect-instance.go @@ -0,0 +1,132 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Instance AWS CloudFormation Resource (AWS::Connect::Instance) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html +type Instance struct { + + // Attributes AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html#cfn-connect-instance-attributes + Attributes *Instance_Attributes `json:"Attributes"` + + // DirectoryId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html#cfn-connect-instance-directoryid + DirectoryId *string `json:"DirectoryId,omitempty"` + + // IdentityManagementType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html#cfn-connect-instance-identitymanagementtype + IdentityManagementType string `json:"IdentityManagementType"` + + // InstanceAlias AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-instance.html#cfn-connect-instance-instancealias + InstanceAlias *string `json:"InstanceAlias,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 *Instance) AWSCloudFormationType() string { + return "AWS::Connect::Instance" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Instance) MarshalJSON() ([]byte, error) { + type Properties Instance + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Instance) UnmarshalJSON(b []byte) error { + type Properties Instance + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Instance(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/connect/aws-connect-instance_attributes.go b/cloudformation/connect/aws-connect-instance_attributes.go new file mode 100644 index 0000000000..6829482a90 --- /dev/null +++ b/cloudformation/connect/aws-connect-instance_attributes.go @@ -0,0 +1,67 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Instance_Attributes AWS CloudFormation Resource (AWS::Connect::Instance.Attributes) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html +type Instance_Attributes struct { + + // AutoResolveBestVoices AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-autoresolvebestvoices + AutoResolveBestVoices *bool `json:"AutoResolveBestVoices,omitempty"` + + // ContactLens AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-contactlens + ContactLens *bool `json:"ContactLens,omitempty"` + + // ContactflowLogs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-contactflowlogs + ContactflowLogs *bool `json:"ContactflowLogs,omitempty"` + + // EarlyMedia AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-earlymedia + EarlyMedia *bool `json:"EarlyMedia,omitempty"` + + // InboundCalls AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-inboundcalls + InboundCalls bool `json:"InboundCalls"` + + // OutboundCalls AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-outboundcalls + OutboundCalls bool `json:"OutboundCalls"` + + // UseCustomTTSVoices AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html#cfn-connect-instance-attributes-usecustomttsvoices + UseCustomTTSVoices *bool `json:"UseCustomTTSVoices,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 *Instance_Attributes) AWSCloudFormationType() string { + return "AWS::Connect::Instance.Attributes" +} diff --git a/cloudformation/dynamodb/aws-dynamodb-table.go b/cloudformation/dynamodb/aws-dynamodb-table.go index 70581f0a43..f32e1caf8a 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table.go +++ b/cloudformation/dynamodb/aws-dynamodb-table.go @@ -16,7 +16,7 @@ type Table struct { // AttributeDefinitions AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-attributedef + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-attributedefinitions AttributeDefinitions *[]Table_AttributeDefinition `json:"AttributeDefinitions,omitempty"` // BillingMode AWS CloudFormation Property @@ -26,14 +26,19 @@ type Table struct { // ContributorInsightsSpecification AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-contributorinsightsspecification-enabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-contributorinsightsspecification ContributorInsightsSpecification *Table_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"` // GlobalSecondaryIndexes AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-gsi + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-globalsecondaryindexes GlobalSecondaryIndexes *[]Table_GlobalSecondaryIndex `json:"GlobalSecondaryIndexes,omitempty"` + // ImportSourceSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-importsourcespecification + ImportSourceSpecification *Table_ImportSourceSpecification `json:"ImportSourceSpecification,omitempty"` + // KeySchema AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-keyschema @@ -46,7 +51,7 @@ type Table struct { // LocalSecondaryIndexes AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-lsi + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-localsecondaryindexes LocalSecondaryIndexes *[]Table_LocalSecondaryIndex `json:"LocalSecondaryIndexes,omitempty"` // PointInTimeRecoverySpecification AWS CloudFormation Property diff --git a/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go b/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go index bd80914bd5..1859330b73 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go @@ -7,17 +7,17 @@ import ( ) // Table_AttributeDefinition AWS CloudFormation Resource (AWS::DynamoDB::Table.AttributeDefinition) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-attributedefinition.html type Table_AttributeDefinition struct { // AttributeName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-attributedefinition.html#cfn-dynamodb-table-attributedefinition-attributename AttributeName string `json:"AttributeName"` // AttributeType AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-attributedefinition.html#cfn-dynamodb-table-attributedefinition-attributetype AttributeType string `json:"AttributeType"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go b/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go index 76d056f311..e2641466f5 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go @@ -7,12 +7,12 @@ import ( ) // Table_ContributorInsightsSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.ContributorInsightsSpecification) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html type Table_ContributorInsightsSpecification struct { // Enabled AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html#cfn-dynamodb-contributorinsightsspecification-enabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html#cfn-dynamodb-table-contributorinsightsspecification-enabled Enabled bool `json:"Enabled"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_csv.go b/cloudformation/dynamodb/aws-dynamodb-table_csv.go new file mode 100644 index 0000000000..a10fc20bc5 --- /dev/null +++ b/cloudformation/dynamodb/aws-dynamodb-table_csv.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package dynamodb + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Table_Csv AWS CloudFormation Resource (AWS::DynamoDB::Table.Csv) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-csv.html +type Table_Csv struct { + + // Delimiter AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-csv.html#cfn-dynamodb-table-csv-delimiter + Delimiter *string `json:"Delimiter,omitempty"` + + // HeaderList AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-csv.html#cfn-dynamodb-table-csv-headerlist + HeaderList *[]string `json:"HeaderList,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 *Table_Csv) AWSCloudFormationType() string { + return "AWS::DynamoDB::Table.Csv" +} diff --git a/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go b/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go index a83dc95816..d7803292ec 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go @@ -7,32 +7,32 @@ import ( ) // Table_GlobalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.GlobalSecondaryIndex) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html type Table_GlobalSecondaryIndex struct { // ContributorInsightsSpecification AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-contributorinsightsspecification-enabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html#cfn-dynamodb-table-globalsecondaryindex-contributorinsightsspecification ContributorInsightsSpecification *Table_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"` // IndexName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-indexname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html#cfn-dynamodb-table-globalsecondaryindex-indexname IndexName string `json:"IndexName"` // KeySchema AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-keyschema + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html#cfn-dynamodb-table-globalsecondaryindex-keyschema KeySchema []Table_KeySchema `json:"KeySchema"` // Projection AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-projection + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html#cfn-dynamodb-table-globalsecondaryindex-projection Projection *Table_Projection `json:"Projection"` // ProvisionedThroughput AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-provisionedthroughput + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html#cfn-dynamodb-table-globalsecondaryindex-provisionedthroughput ProvisionedThroughput *Table_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_importsourcespecification.go b/cloudformation/dynamodb/aws-dynamodb-table_importsourcespecification.go new file mode 100644 index 0000000000..804ba12db1 --- /dev/null +++ b/cloudformation/dynamodb/aws-dynamodb-table_importsourcespecification.go @@ -0,0 +1,52 @@ +// Code generated by "go generate". Please don't change this file directly. + +package dynamodb + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Table_ImportSourceSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.ImportSourceSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html +type Table_ImportSourceSpecification struct { + + // InputCompressionType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html#cfn-dynamodb-table-importsourcespecification-inputcompressiontype + InputCompressionType *string `json:"InputCompressionType,omitempty"` + + // InputFormat AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html#cfn-dynamodb-table-importsourcespecification-inputformat + InputFormat string `json:"InputFormat"` + + // InputFormatOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html#cfn-dynamodb-table-importsourcespecification-inputformatoptions + InputFormatOptions *Table_InputFormatOptions `json:"InputFormatOptions,omitempty"` + + // S3BucketSource AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html#cfn-dynamodb-table-importsourcespecification-s3bucketsource + S3BucketSource *Table_S3BucketSource `json:"S3BucketSource"` + + // 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 *Table_ImportSourceSpecification) AWSCloudFormationType() string { + return "AWS::DynamoDB::Table.ImportSourceSpecification" +} diff --git a/cloudformation/dynamodb/aws-dynamodb-table_inputformatoptions.go b/cloudformation/dynamodb/aws-dynamodb-table_inputformatoptions.go new file mode 100644 index 0000000000..9ca906a0a2 --- /dev/null +++ b/cloudformation/dynamodb/aws-dynamodb-table_inputformatoptions.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package dynamodb + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Table_InputFormatOptions AWS CloudFormation Resource (AWS::DynamoDB::Table.InputFormatOptions) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-inputformatoptions.html +type Table_InputFormatOptions struct { + + // Csv AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-inputformatoptions.html#cfn-dynamodb-table-inputformatoptions-csv + Csv *Table_Csv `json:"Csv,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 *Table_InputFormatOptions) AWSCloudFormationType() string { + return "AWS::DynamoDB::Table.InputFormatOptions" +} diff --git a/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go b/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go index 547e042a93..1a0ecac6c0 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go @@ -7,12 +7,12 @@ import ( ) // Table_KinesisStreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.KinesisStreamSpecification) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-kinesisstreamspecification.html type Table_KinesisStreamSpecification struct { // StreamArn AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html#cfn-dynamodb-kinesisstreamspecification-streamarn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-kinesisstreamspecification.html#cfn-dynamodb-table-kinesisstreamspecification-streamarn StreamArn string `json:"StreamArn"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go b/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go index 79a451bc06..e90a98c122 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go @@ -7,22 +7,22 @@ import ( ) // Table_LocalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.LocalSecondaryIndex) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-localsecondaryindex.html type Table_LocalSecondaryIndex struct { // IndexName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-indexname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-localsecondaryindex.html#cfn-dynamodb-table-localsecondaryindex-indexname IndexName string `json:"IndexName"` // KeySchema AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-keyschema + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-localsecondaryindex.html#cfn-dynamodb-table-localsecondaryindex-keyschema KeySchema []Table_KeySchema `json:"KeySchema"` // Projection AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-projection + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-localsecondaryindex.html#cfn-dynamodb-table-localsecondaryindex-projection Projection *Table_Projection `json:"Projection"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_projection.go b/cloudformation/dynamodb/aws-dynamodb-table_projection.go index ed5dee9e7f..5ef82fec9e 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_projection.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_projection.go @@ -7,17 +7,17 @@ import ( ) // Table_Projection AWS CloudFormation Resource (AWS::DynamoDB::Table.Projection) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-projection.html type Table_Projection struct { // NonKeyAttributes AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-nonkeyatt + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-projection.html#cfn-dynamodb-table-projection-nonkeyattributes NonKeyAttributes *[]string `json:"NonKeyAttributes,omitempty"` // ProjectionType AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-projtype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-projection.html#cfn-dynamodb-table-projection-projectiontype ProjectionType *string `json:"ProjectionType,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go b/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go index 73b900ffb3..91833331a7 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go @@ -7,18 +7,18 @@ import ( ) // Table_ProvisionedThroughput AWS CloudFormation Resource (AWS::DynamoDB::Table.ProvisionedThroughput) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html type Table_ProvisionedThroughput struct { // ReadCapacityUnits AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-readcapacityunits - ReadCapacityUnits int64 `json:"ReadCapacityUnits"` + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html#cfn-dynamodb-table-provisionedthroughput-readcapacityunits + ReadCapacityUnits int `json:"ReadCapacityUnits"` // WriteCapacityUnits AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-writecapacityunits - WriteCapacityUnits int64 `json:"WriteCapacityUnits"` + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html#cfn-dynamodb-table-provisionedthroughput-writecapacityunits + WriteCapacityUnits int `json:"WriteCapacityUnits"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/dynamodb/aws-dynamodb-table_s3bucketsource.go b/cloudformation/dynamodb/aws-dynamodb-table_s3bucketsource.go new file mode 100644 index 0000000000..45c6c8df09 --- /dev/null +++ b/cloudformation/dynamodb/aws-dynamodb-table_s3bucketsource.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package dynamodb + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Table_S3BucketSource AWS CloudFormation Resource (AWS::DynamoDB::Table.S3BucketSource) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-s3bucketsource.html +type Table_S3BucketSource struct { + + // S3Bucket AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-s3bucketsource.html#cfn-dynamodb-table-s3bucketsource-s3bucket + S3Bucket string `json:"S3Bucket"` + + // S3BucketOwner AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-s3bucketsource.html#cfn-dynamodb-table-s3bucketsource-s3bucketowner + S3BucketOwner *string `json:"S3BucketOwner,omitempty"` + + // S3KeyPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-s3bucketsource.html#cfn-dynamodb-table-s3bucketsource-s3keyprefix + S3KeyPrefix *string `json:"S3KeyPrefix,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 *Table_S3BucketSource) AWSCloudFormationType() string { + return "AWS::DynamoDB::Table.S3BucketSource" +} diff --git a/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go b/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go index 3ec1db879b..eea27abfee 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go @@ -7,12 +7,12 @@ import ( ) // Table_StreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.StreamSpecification) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html type Table_StreamSpecification struct { // StreamViewType AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html#cfn-dynamodb-streamspecification-streamviewtype + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html#cfn-dynamodb-table-streamspecification-streamviewtype StreamViewType string `json:"StreamViewType"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go b/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go index 2bf4e759dd..5368b023c3 100644 --- a/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go +++ b/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go @@ -7,17 +7,17 @@ import ( ) // Table_TimeToLiveSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.TimeToLiveSpecification) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-timetolivespecification.html type Table_TimeToLiveSpecification struct { // AttributeName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-attributename + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-timetolivespecification.html#cfn-dynamodb-table-timetolivespecification-attributename AttributeName string `json:"AttributeName"` // Enabled AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-enabled + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-timetolivespecification.html#cfn-dynamodb-table-timetolivespecification-enabled Enabled bool `json:"Enabled"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/ec2/aws-ec2-customergateway.go b/cloudformation/ec2/aws-ec2-customergateway.go index 45191e91d7..6b3773ae2a 100644 --- a/cloudformation/ec2/aws-ec2-customergateway.go +++ b/cloudformation/ec2/aws-ec2-customergateway.go @@ -11,27 +11,27 @@ import ( ) // CustomerGateway AWS CloudFormation Resource (AWS::EC2::CustomerGateway) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html type CustomerGateway struct { // BgpAsn AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-bgpasn BgpAsn int `json:"BgpAsn"` // IpAddress AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-ipaddress + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-ipaddress IpAddress string `json:"IpAddress"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // Type AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-type + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-type Type string `json:"Type"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go b/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go index 1f6c7ea161..405cf0751a 100644 --- a/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go +++ b/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go @@ -44,6 +44,11 @@ type WirelessGateway struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-thingarn ThingArn *string `json:"ThingArn,omitempty"` + // ThingName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-thingname + ThingName *string `json:"ThingName,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/logs/aws-logs-subscriptionfilter.go b/cloudformation/logs/aws-logs-subscriptionfilter.go index cb8005b706..4837c1549c 100644 --- a/cloudformation/logs/aws-logs-subscriptionfilter.go +++ b/cloudformation/logs/aws-logs-subscriptionfilter.go @@ -15,22 +15,22 @@ type SubscriptionFilter struct { // DestinationArn AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-destinationarn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-destinationarn DestinationArn string `json:"DestinationArn"` // FilterPattern AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filterpattern FilterPattern string `json:"FilterPattern"` // LogGroupName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-loggroupname LogGroupName string `json:"LogGroupName"` // RoleArn AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-rolearn + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-rolearn RoleArn *string `json:"RoleArn,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/rds/aws-rds-dbcluster.go b/cloudformation/rds/aws-rds-dbcluster.go index 24ebcd3ef3..650e3574f8 100644 --- a/cloudformation/rds/aws-rds-dbcluster.go +++ b/cloudformation/rds/aws-rds-dbcluster.go @@ -14,11 +14,21 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html type DBCluster struct { + // AllocatedStorage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-allocatedstorage + AllocatedStorage *int `json:"AllocatedStorage,omitempty"` + // AssociatedRoles AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-associatedroles AssociatedRoles *[]DBCluster_DBClusterRole `json:"AssociatedRoles,omitempty"` + // AutoMinorVersionUpgrade AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-autominorversionupgrade + AutoMinorVersionUpgrade *bool `json:"AutoMinorVersionUpgrade,omitempty"` + // AvailabilityZones AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-availabilityzones @@ -27,11 +37,11 @@ type DBCluster struct { // BacktrackWindow AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backtrackwindow - BacktrackWindow *int64 `json:"BacktrackWindow,omitempty"` + BacktrackWindow *int `json:"BacktrackWindow,omitempty"` // BackupRetentionPeriod AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backuprententionperiod + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-backupretentionperiod BackupRetentionPeriod *int `json:"BackupRetentionPeriod,omitempty"` // CopyTagsToSnapshot AWS CloudFormation Property @@ -44,6 +54,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusteridentifier DBClusterIdentifier *string `json:"DBClusterIdentifier,omitempty"` + // DBClusterInstanceClass AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterinstanceclass + DBClusterInstanceClass *string `json:"DBClusterInstanceClass,omitempty"` + // DBClusterParameterGroupName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-dbclusterparametergroupname @@ -80,9 +95,9 @@ type DBCluster struct { EnableIAMDatabaseAuthentication *bool `json:"EnableIAMDatabaseAuthentication,omitempty"` // Engine AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engine - Engine string `json:"Engine"` + Engine *string `json:"Engine,omitempty"` // EngineMode AWS CloudFormation Property // Required: false @@ -99,6 +114,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-globalclusteridentifier GlobalClusterIdentifier *string `json:"GlobalClusterIdentifier,omitempty"` + // Iops AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-iops + Iops *int `json:"Iops,omitempty"` + // KmsKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid @@ -114,6 +134,31 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-masterusername MasterUsername *string `json:"MasterUsername,omitempty"` + // MonitoringInterval AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringinterval + MonitoringInterval *int `json:"MonitoringInterval,omitempty"` + + // MonitoringRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-monitoringrolearn + MonitoringRoleArn *string `json:"MonitoringRoleArn,omitempty"` + + // PerformanceInsightsEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsenabled + PerformanceInsightsEnabled *bool `json:"PerformanceInsightsEnabled,omitempty"` + + // PerformanceInsightsKmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightskmskeyid + PerformanceInsightsKmsKeyId *string `json:"PerformanceInsightsKmsKeyId,omitempty"` + + // PerformanceInsightsRetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-performanceinsightsretentionperiod + PerformanceInsightsRetentionPeriod *int `json:"PerformanceInsightsRetentionPeriod,omitempty"` + // Port AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-port @@ -129,6 +174,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-preferredmaintenancewindow PreferredMaintenanceWindow *string `json:"PreferredMaintenanceWindow,omitempty"` + // PubliclyAccessible AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-publiclyaccessible + PubliclyAccessible *bool `json:"PubliclyAccessible,omitempty"` + // ReplicationSourceIdentifier AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-replicationsourceidentifier @@ -164,6 +214,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storageencrypted StorageEncrypted *bool `json:"StorageEncrypted,omitempty"` + // StorageType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-storagetype + StorageType *string `json:"StorageType,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-tags diff --git a/cloudformation/rds/aws-rds-dbcluster_readendpoint.go b/cloudformation/rds/aws-rds-dbcluster_readendpoint.go new file mode 100644 index 0000000000..50cf7f6d32 --- /dev/null +++ b/cloudformation/rds/aws-rds-dbcluster_readendpoint.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rds + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// DBCluster_ReadEndpoint AWS CloudFormation Resource (AWS::RDS::DBCluster.ReadEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-readendpoint.html +type DBCluster_ReadEndpoint struct { + + // Address AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-readendpoint.html#cfn-rds-dbcluster-readendpoint-address + Address *string `json:"Address,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 *DBCluster_ReadEndpoint) AWSCloudFormationType() string { + return "AWS::RDS::DBCluster.ReadEndpoint" +} diff --git a/cloudformation/rds/aws-rds-dbparametergroup.go b/cloudformation/rds/aws-rds-dbparametergroup.go index 00f7fa4a36..6913f27f63 100644 --- a/cloudformation/rds/aws-rds-dbparametergroup.go +++ b/cloudformation/rds/aws-rds-dbparametergroup.go @@ -11,27 +11,27 @@ import ( ) // DBParameterGroup AWS CloudFormation Resource (AWS::RDS::DBParameterGroup) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html type DBParameterGroup struct { // Description AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-description + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html#cfn-rds-dbparametergroup-description Description string `json:"Description"` // Family AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-family + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html#cfn-rds-dbparametergroup-family Family string `json:"Family"` // Parameters AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-parameters - Parameters *map[string]string `json:"Parameters,omitempty"` + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html#cfn-rds-dbparametergroup-parameters + Parameters *interface{} `json:"Parameters,omitempty"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html#cfn-rds-dbparametergroup-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbparametergroup.html#cfn-rds-dbparametergroup-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/sns/aws-sns-topic.go b/cloudformation/sns/aws-sns-topic.go index 7b9121bb29..2b8c5e6316 100644 --- a/cloudformation/sns/aws-sns-topic.go +++ b/cloudformation/sns/aws-sns-topic.go @@ -11,42 +11,42 @@ import ( ) // Topic AWS CloudFormation Resource (AWS::SNS::Topic) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html type Topic struct { // ContentBasedDeduplication AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-contentbaseddeduplication + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-contentbaseddeduplication ContentBasedDeduplication *bool `json:"ContentBasedDeduplication,omitempty"` // DisplayName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-displayname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-displayname DisplayName *string `json:"DisplayName,omitempty"` // FifoTopic AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-fifotopic + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-fifotopic FifoTopic *bool `json:"FifoTopic,omitempty"` // KmsMasterKeyId AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-kmsmasterkeyid + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-kmsmasterkeyid KmsMasterKeyId *string `json:"KmsMasterKeyId,omitempty"` // Subscription AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-subscription + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-subscription Subscription *[]Topic_Subscription `json:"Subscription,omitempty"` // Tags AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-tags + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-tags Tags *[]tags.Tag `json:"Tags,omitempty"` // TopicName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-topicname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html#cfn-sns-topic-topicname TopicName *string `json:"TopicName,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/sns/aws-sns-topic_subscription.go b/cloudformation/sns/aws-sns-topic_subscription.go index aa2af8ebaa..2d84fd44d0 100644 --- a/cloudformation/sns/aws-sns-topic_subscription.go +++ b/cloudformation/sns/aws-sns-topic_subscription.go @@ -7,17 +7,17 @@ import ( ) // Topic_Subscription AWS CloudFormation Resource (AWS::SNS::Topic.Subscription) -// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html type Topic_Subscription struct { // Endpoint AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html#cfn-sns-topic-subscription-endpoint + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html#cfn-sns-topic-subscription-endpoint Endpoint string `json:"Endpoint"` // Protocol AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-subscription.html#cfn-sns-topic-subscription-protocol + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html#cfn-sns-topic-subscription-protocol Protocol string `json:"Protocol"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/supportapp/aws-supportapp-accountalias.go b/cloudformation/supportapp/aws-supportapp-accountalias.go new file mode 100644 index 0000000000..fc9a637176 --- /dev/null +++ b/cloudformation/supportapp/aws-supportapp-accountalias.go @@ -0,0 +1,117 @@ +// Code generated by "go generate". Please don't change this file directly. + +package supportapp + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// AccountAlias AWS CloudFormation Resource (AWS::SupportApp::AccountAlias) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html +type AccountAlias struct { + + // AccountAlias AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-accountalias.html#cfn-supportapp-accountalias-accountalias + AccountAlias string `json:"AccountAlias"` + + // 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 *AccountAlias) AWSCloudFormationType() string { + return "AWS::SupportApp::AccountAlias" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r AccountAlias) MarshalJSON() ([]byte, error) { + type Properties AccountAlias + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *AccountAlias) UnmarshalJSON(b []byte) error { + type Properties AccountAlias + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = AccountAlias(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/supportapp/aws-supportapp-slackchannelconfiguration.go b/cloudformation/supportapp/aws-supportapp-slackchannelconfiguration.go new file mode 100644 index 0000000000..a43fd1d691 --- /dev/null +++ b/cloudformation/supportapp/aws-supportapp-slackchannelconfiguration.go @@ -0,0 +1,152 @@ +// Code generated by "go generate". Please don't change this file directly. + +package supportapp + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// SlackChannelConfiguration AWS CloudFormation Resource (AWS::SupportApp::SlackChannelConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html +type SlackChannelConfiguration struct { + + // ChannelId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-channelid + ChannelId string `json:"ChannelId"` + + // ChannelName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-channelname + ChannelName *string `json:"ChannelName,omitempty"` + + // ChannelRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-channelrolearn + ChannelRoleArn string `json:"ChannelRoleArn"` + + // NotifyOnAddCorrespondenceToCase AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-notifyonaddcorrespondencetocase + NotifyOnAddCorrespondenceToCase *bool `json:"NotifyOnAddCorrespondenceToCase,omitempty"` + + // NotifyOnCaseSeverity AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-notifyoncaseseverity + NotifyOnCaseSeverity string `json:"NotifyOnCaseSeverity"` + + // NotifyOnCreateOrReopenCase AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-notifyoncreateorreopencase + NotifyOnCreateOrReopenCase *bool `json:"NotifyOnCreateOrReopenCase,omitempty"` + + // NotifyOnResolveCase AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-notifyonresolvecase + NotifyOnResolveCase *bool `json:"NotifyOnResolveCase,omitempty"` + + // TeamId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-supportapp-slackchannelconfiguration.html#cfn-supportapp-slackchannelconfiguration-teamid + TeamId string `json:"TeamId"` + + // 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 *SlackChannelConfiguration) AWSCloudFormationType() string { + return "AWS::SupportApp::SlackChannelConfiguration" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r SlackChannelConfiguration) MarshalJSON() ([]byte, error) { + type Properties SlackChannelConfiguration + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *SlackChannelConfiguration) UnmarshalJSON(b []byte) error { + type Properties SlackChannelConfiguration + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SlackChannelConfiguration(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/schema/cdk.go b/schema/cdk.go index 5067717a41..e25a454f2e 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -9047,6 +9047,9 @@ var CdkSchema = `{ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9111,6 +9114,9 @@ var CdkSchema = `{ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9232,6 +9238,9 @@ var CdkSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9603,6 +9612,9 @@ var CdkSchema = `{ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9800,6 +9812,9 @@ var CdkSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9885,6 +9900,9 @@ var CdkSchema = `{ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9909,6 +9927,15 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9921,6 +9948,9 @@ var CdkSchema = `{ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10015,6 +10045,37 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10120,6 +10181,9 @@ var CdkSchema = `{ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10670,6 +10734,9 @@ var CdkSchema = `{ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10737,6 +10804,22 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10892,6 +10975,21 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23158,6 +23256,9 @@ var CdkSchema = `{ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24156,6 +24257,9 @@ var CdkSchema = `{ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24187,6 +24291,21 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30659,6 +30778,9 @@ var CdkSchema = `{ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31633,6 +31755,112 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39632,6 +39860,9 @@ var CdkSchema = `{ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39729,6 +39960,21 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39758,6 +40004,37 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39849,6 +40126,24 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82211,6 +82506,9 @@ var CdkSchema = `{ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113211,12 +113509,18 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113235,6 +113539,9 @@ var CdkSchema = `{ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113271,6 +113578,9 @@ var CdkSchema = `{ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113280,6 +113590,21 @@ var CdkSchema = `{ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113289,6 +113614,9 @@ var CdkSchema = `{ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113310,6 +113638,9 @@ var CdkSchema = `{ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113326,9 +113657,6 @@ var CdkSchema = `{ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113347,8 +113675,7 @@ var CdkSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113367,6 +113694,15 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113781,12 +114117,6 @@ var CdkSchema = `{ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -134626,6 +134956,160 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -141507,6 +141991,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -143598,6 +144085,12 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 862a3569e7..c01f171a48 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -9042,6 +9042,9 @@ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9106,6 +9109,9 @@ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9227,6 +9233,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9598,6 +9607,9 @@ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9795,6 +9807,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9880,6 +9895,9 @@ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9904,6 +9922,15 @@ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9916,6 +9943,9 @@ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10010,6 +10040,37 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10115,6 +10176,9 @@ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10665,6 +10729,9 @@ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10732,6 +10799,22 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10887,6 +10970,21 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23153,6 +23251,9 @@ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24151,6 +24252,9 @@ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24182,6 +24286,21 @@ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30654,6 +30773,9 @@ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31628,6 +31750,112 @@ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39627,6 +39855,9 @@ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39724,6 +39955,21 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39753,6 +39999,37 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39844,6 +40121,24 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82206,6 +82501,9 @@ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113206,12 +113504,18 @@ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113230,6 +113534,9 @@ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113266,6 +113573,9 @@ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113275,6 +113585,21 @@ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113284,6 +113609,9 @@ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113305,6 +113633,9 @@ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113321,9 +113652,6 @@ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113342,8 +113670,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113362,6 +113689,15 @@ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113776,12 +114112,6 @@ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -134621,6 +134951,160 @@ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -141502,6 +141986,9 @@ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -143593,6 +144080,12 @@ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 81898cc2c2..7b301ffbb1 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -9047,6 +9047,9 @@ var CloudformationSchema = `{ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9111,6 +9114,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9232,6 +9238,9 @@ var CloudformationSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9603,6 +9612,9 @@ var CloudformationSchema = `{ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9800,6 +9812,9 @@ var CloudformationSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9885,6 +9900,9 @@ var CloudformationSchema = `{ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9909,6 +9927,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9921,6 +9948,9 @@ var CloudformationSchema = `{ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10015,6 +10045,37 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10120,6 +10181,9 @@ var CloudformationSchema = `{ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10670,6 +10734,9 @@ var CloudformationSchema = `{ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10737,6 +10804,22 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10892,6 +10975,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23097,6 +23195,9 @@ var CloudformationSchema = `{ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24095,6 +24196,9 @@ var CloudformationSchema = `{ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24126,6 +24230,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30598,6 +30717,9 @@ var CloudformationSchema = `{ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31572,6 +31694,112 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39571,6 +39799,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39668,6 +39899,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39697,6 +39943,37 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39788,6 +40065,24 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82150,6 +82445,9 @@ var CloudformationSchema = `{ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113150,12 +113448,18 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113174,6 +113478,9 @@ var CloudformationSchema = `{ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113210,6 +113517,9 @@ var CloudformationSchema = `{ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113219,6 +113529,21 @@ var CloudformationSchema = `{ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113228,6 +113553,9 @@ var CloudformationSchema = `{ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113249,6 +113577,9 @@ var CloudformationSchema = `{ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113265,9 +113596,6 @@ var CloudformationSchema = `{ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113286,8 +113614,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113306,6 +113633,15 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113720,12 +114056,6 @@ var CloudformationSchema = `{ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -134565,6 +134895,160 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -141443,6 +141927,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -143534,6 +144021,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 272cc6f936..a8cb3e0ffb 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -9042,6 +9042,9 @@ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9106,6 +9109,9 @@ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9227,6 +9233,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9598,6 +9607,9 @@ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9795,6 +9807,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9880,6 +9895,9 @@ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9904,6 +9922,15 @@ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9916,6 +9943,9 @@ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10010,6 +10040,37 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10115,6 +10176,9 @@ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10665,6 +10729,9 @@ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10732,6 +10799,22 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10887,6 +10970,21 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23092,6 +23190,9 @@ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24090,6 +24191,9 @@ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24121,6 +24225,21 @@ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30593,6 +30712,9 @@ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31567,6 +31689,112 @@ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39566,6 +39794,9 @@ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39663,6 +39894,21 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39692,6 +39938,37 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39783,6 +40060,24 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82145,6 +82440,9 @@ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113145,12 +113443,18 @@ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113169,6 +113473,9 @@ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113205,6 +113512,9 @@ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113214,6 +113524,21 @@ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113223,6 +113548,9 @@ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113244,6 +113572,9 @@ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113260,9 +113591,6 @@ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113281,8 +113609,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113301,6 +113628,15 @@ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113715,12 +114051,6 @@ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -134560,6 +134890,160 @@ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -141438,6 +141922,9 @@ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -143529,6 +144016,12 @@ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" }, diff --git a/schema/sam.go b/schema/sam.go index 27ca91c622..6f7e17395f 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -9047,6 +9047,9 @@ var SamSchema = `{ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9111,6 +9114,9 @@ var SamSchema = `{ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9232,6 +9238,9 @@ var SamSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9603,6 +9612,9 @@ var SamSchema = `{ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9800,6 +9812,9 @@ var SamSchema = `{ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9885,6 +9900,9 @@ var SamSchema = `{ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9909,6 +9927,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9921,6 +9948,9 @@ var SamSchema = `{ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10015,6 +10045,37 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10120,6 +10181,9 @@ var SamSchema = `{ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10670,6 +10734,9 @@ var SamSchema = `{ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10737,6 +10804,22 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10892,6 +10975,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23097,6 +23195,9 @@ var SamSchema = `{ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24095,6 +24196,9 @@ var SamSchema = `{ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24126,6 +24230,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30598,6 +30717,9 @@ var SamSchema = `{ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31572,6 +31694,112 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39571,6 +39799,9 @@ var SamSchema = `{ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39668,6 +39899,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39697,6 +39943,37 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39788,6 +40065,24 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82150,6 +82445,9 @@ var SamSchema = `{ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113150,12 +113448,18 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113174,6 +113478,9 @@ var SamSchema = `{ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113210,6 +113517,9 @@ var SamSchema = `{ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113219,6 +113529,21 @@ var SamSchema = `{ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113228,6 +113553,9 @@ var SamSchema = `{ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113249,6 +113577,9 @@ var SamSchema = `{ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113265,9 +113596,6 @@ var SamSchema = `{ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113286,8 +113614,7 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113306,6 +113633,15 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113720,12 +114056,6 @@ var SamSchema = `{ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -137157,6 +137487,160 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -144324,6 +144808,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -146436,6 +146923,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 0d8f23b8de..9f94712c58 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -9042,6 +9042,9 @@ "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualService": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" } @@ -9106,6 +9109,9 @@ }, "type": "array" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9227,6 +9233,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9598,6 +9607,9 @@ "MethodName": { "type": "string" }, + "Port": { + "type": "number" + }, "ServiceName": { "type": "string" } @@ -9795,6 +9807,9 @@ "Path": { "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" }, + "Port": { + "type": "number" + }, "Prefix": { "type": "string" }, @@ -9880,6 +9895,9 @@ "Action": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, "Timeout": { "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" } @@ -9904,6 +9922,15 @@ ], "type": "object" }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, "AWS::AppMesh::Route.TcpTimeout": { "additionalProperties": false, "properties": { @@ -9916,6 +9943,9 @@ "AWS::AppMesh::Route.WeightedTarget": { "additionalProperties": false, "properties": { + "Port": { + "type": "number" + }, "VirtualNode": { "type": "string" }, @@ -10010,6 +10040,37 @@ ], "type": "object" }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { "additionalProperties": false, "properties": { @@ -10115,6 +10176,9 @@ "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, "Path": { "type": "string" } @@ -10665,6 +10729,9 @@ "AWS::AppMesh::VirtualNode.FileAccessLog": { "additionalProperties": false, "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, "Path": { "type": "string" } @@ -10732,6 +10799,22 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::AppMesh::VirtualNode.Listener": { "additionalProperties": false, "properties": { @@ -10887,6 +10970,21 @@ }, "type": "object" }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppMesh::VirtualNode.OutlierDetection": { "additionalProperties": false, "properties": { @@ -23092,6 +23190,9 @@ "Id": { "type": "string" }, + "OriginAccessControlId": { + "type": "string" + }, "OriginCustomHeaders": { "items": { "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" @@ -24090,6 +24191,9 @@ }, "SecurityHeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" } }, "required": [ @@ -24121,6 +24225,21 @@ }, "type": "object" }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { "additionalProperties": false, "properties": { @@ -30593,6 +30712,9 @@ }, "TemplateS3Uri": { "type": "string" + }, + "TemplateSSMDocumentDetails": { + "type": "object" } }, "required": [ @@ -31567,6 +31689,112 @@ ], "type": "object" }, + "AWS::Connect::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, "AWS::Connect::PhoneNumber": { "additionalProperties": false, "properties": { @@ -39566,6 +39794,9 @@ }, "type": "array" }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, "KeySchema": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" @@ -39663,6 +39894,21 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.GlobalSecondaryIndex": { "additionalProperties": false, "properties": { @@ -39692,6 +39938,37 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, "AWS::DynamoDB::Table.KeySchema": { "additionalProperties": false, "properties": { @@ -39783,6 +40060,24 @@ ], "type": "object" }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, "AWS::DynamoDB::Table.SSESpecification": { "additionalProperties": false, "properties": { @@ -82145,6 +82440,9 @@ }, "ThingArn": { "type": "string" + }, + "ThingName": { + "type": "string" } }, "required": [ @@ -113145,12 +113443,18 @@ "Properties": { "additionalProperties": false, "properties": { + "AllocatedStorage": { + "type": "number" + }, "AssociatedRoles": { "items": { "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" }, "type": "array" }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, "AvailabilityZones": { "items": { "type": "string" @@ -113169,6 +113473,9 @@ "DBClusterIdentifier": { "type": "string" }, + "DBClusterInstanceClass": { + "type": "string" + }, "DBClusterParameterGroupName": { "type": "string" }, @@ -113205,6 +113512,9 @@ "GlobalClusterIdentifier": { "type": "string" }, + "Iops": { + "type": "number" + }, "KmsKeyId": { "type": "string" }, @@ -113214,6 +113524,21 @@ "MasterUsername": { "type": "string" }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, "Port": { "type": "number" }, @@ -113223,6 +113548,9 @@ "PreferredMaintenanceWindow": { "type": "string" }, + "PubliclyAccessible": { + "type": "boolean" + }, "ReplicationSourceIdentifier": { "type": "string" }, @@ -113244,6 +113572,9 @@ "StorageEncrypted": { "type": "boolean" }, + "StorageType": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -113260,9 +113591,6 @@ "type": "array" } }, - "required": [ - "Engine" - ], "type": "object" }, "Type": { @@ -113281,8 +113609,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -113301,6 +113628,15 @@ ], "type": "object" }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RDS::DBCluster.ScalingConfiguration": { "additionalProperties": false, "properties": { @@ -113715,12 +114051,6 @@ "type": "string" }, "Parameters": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, "type": "object" }, "Tags": { @@ -137152,6 +137482,160 @@ }, "type": "object" }, + "AWS::SupportApp::AccountAlias": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Synthetics::Canary": { "additionalProperties": false, "properties": { @@ -144319,6 +144803,9 @@ { "$ref": "#/definitions/AWS::Connect::HoursOfOperation" }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, { "$ref": "#/definitions/AWS::Connect::PhoneNumber" }, @@ -146431,6 +146918,12 @@ { "$ref": "#/definitions/AWS::StepFunctions::StateMachine" }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, { "$ref": "#/definitions/AWS::Synthetics::Canary" },