diff --git a/cloudformation/all.go b/cloudformation/all.go index ed5f503e14..673baaf0b6 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -46,6 +46,7 @@ import ( "github.com/awslabs/goformation/v5/cloudformation/codestarnotifications" "github.com/awslabs/goformation/v5/cloudformation/cognito" "github.com/awslabs/goformation/v5/cloudformation/config" + "github.com/awslabs/goformation/v5/cloudformation/connect" "github.com/awslabs/goformation/v5/cloudformation/cur" "github.com/awslabs/goformation/v5/cloudformation/customerprofiles" "github.com/awslabs/goformation/v5/cloudformation/databrew" @@ -281,10 +282,13 @@ func AllResources() map[string]Resource { "AWS::CloudFormation::Macro": &cloudformation.Macro{}, "AWS::CloudFormation::ModuleDefaultVersion": &cloudformation.ModuleDefaultVersion{}, "AWS::CloudFormation::ModuleVersion": &cloudformation.ModuleVersion{}, + "AWS::CloudFormation::PublicTypeVersion": &cloudformation.PublicTypeVersion{}, + "AWS::CloudFormation::Publisher": &cloudformation.Publisher{}, "AWS::CloudFormation::ResourceDefaultVersion": &cloudformation.ResourceDefaultVersion{}, "AWS::CloudFormation::ResourceVersion": &cloudformation.ResourceVersion{}, "AWS::CloudFormation::Stack": &cloudformation.Stack{}, "AWS::CloudFormation::StackSet": &cloudformation.StackSet{}, + "AWS::CloudFormation::TypeActivation": &cloudformation.TypeActivation{}, "AWS::CloudFormation::WaitCondition": &cloudformation.WaitCondition{}, "AWS::CloudFormation::WaitConditionHandle": &cloudformation.WaitConditionHandle{}, "AWS::CloudFront::CachePolicy": &cloudfront.CachePolicy{}, @@ -342,6 +346,7 @@ func AllResources() map[string]Resource { "AWS::Config::OrganizationConformancePack": &config.OrganizationConformancePack{}, "AWS::Config::RemediationConfiguration": &config.RemediationConfiguration{}, "AWS::Config::StoredQuery": &config.StoredQuery{}, + "AWS::Connect::QuickConnect": &connect.QuickConnect{}, "AWS::CustomerProfiles::Domain": &customerprofiles.Domain{}, "AWS::CustomerProfiles::Integration": &customerprofiles.Integration{}, "AWS::CustomerProfiles::ObjectType": &customerprofiles.ObjectType{}, @@ -3570,6 +3575,54 @@ func (t *Template) GetCloudFormationModuleVersionWithName(name string) (*cloudfo return nil, fmt.Errorf("resource %q of type cloudformation.ModuleVersion not found", name) } +// GetAllCloudFormationPublicTypeVersionResources retrieves all cloudformation.PublicTypeVersion items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationPublicTypeVersionResources() map[string]*cloudformation.PublicTypeVersion { + results := map[string]*cloudformation.PublicTypeVersion{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.PublicTypeVersion: + results[name] = resource + } + } + return results +} + +// GetCloudFormationPublicTypeVersionWithName retrieves all cloudformation.PublicTypeVersion items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationPublicTypeVersionWithName(name string) (*cloudformation.PublicTypeVersion, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.PublicTypeVersion: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.PublicTypeVersion not found", name) +} + +// GetAllCloudFormationPublisherResources retrieves all cloudformation.Publisher items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationPublisherResources() map[string]*cloudformation.Publisher { + results := map[string]*cloudformation.Publisher{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.Publisher: + results[name] = resource + } + } + return results +} + +// GetCloudFormationPublisherWithName retrieves all cloudformation.Publisher items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationPublisherWithName(name string) (*cloudformation.Publisher, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.Publisher: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.Publisher not found", name) +} + // GetAllCloudFormationResourceDefaultVersionResources retrieves all cloudformation.ResourceDefaultVersion items from an AWS CloudFormation template func (t *Template) GetAllCloudFormationResourceDefaultVersionResources() map[string]*cloudformation.ResourceDefaultVersion { results := map[string]*cloudformation.ResourceDefaultVersion{} @@ -3666,6 +3719,30 @@ func (t *Template) GetCloudFormationStackSetWithName(name string) (*cloudformati return nil, fmt.Errorf("resource %q of type cloudformation.StackSet not found", name) } +// GetAllCloudFormationTypeActivationResources retrieves all cloudformation.TypeActivation items from an AWS CloudFormation template +func (t *Template) GetAllCloudFormationTypeActivationResources() map[string]*cloudformation.TypeActivation { + results := map[string]*cloudformation.TypeActivation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *cloudformation.TypeActivation: + results[name] = resource + } + } + return results +} + +// GetCloudFormationTypeActivationWithName retrieves all cloudformation.TypeActivation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetCloudFormationTypeActivationWithName(name string) (*cloudformation.TypeActivation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *cloudformation.TypeActivation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type cloudformation.TypeActivation not found", name) +} + // GetAllCloudFormationWaitConditionResources retrieves all cloudformation.WaitCondition items from an AWS CloudFormation template func (t *Template) GetAllCloudFormationWaitConditionResources() map[string]*cloudformation.WaitCondition { results := map[string]*cloudformation.WaitCondition{} @@ -5034,6 +5111,30 @@ func (t *Template) GetConfigStoredQueryWithName(name string) (*config.StoredQuer return nil, fmt.Errorf("resource %q of type config.StoredQuery not found", name) } +// GetAllConnectQuickConnectResources retrieves all connect.QuickConnect items from an AWS CloudFormation template +func (t *Template) GetAllConnectQuickConnectResources() map[string]*connect.QuickConnect { + results := map[string]*connect.QuickConnect{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.QuickConnect: + results[name] = resource + } + } + return results +} + +// GetConnectQuickConnectWithName retrieves all connect.QuickConnect items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectQuickConnectWithName(name string) (*connect.QuickConnect, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.QuickConnect: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.QuickConnect not found", name) +} + // GetAllCustomerProfilesDomainResources retrieves all customerprofiles.Domain items from an AWS CloudFormation template func (t *Template) GetAllCustomerProfilesDomainResources() map[string]*customerprofiles.Domain { results := map[string]*customerprofiles.Domain{} diff --git a/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go b/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go index fccfefdf8d..e32fc59968 100644 --- a/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go +++ b/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go @@ -23,6 +23,11 @@ type DomainName_DomainNameConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype EndpointType string `json:"EndpointType,omitempty"` + // OwnershipVerificationCertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn + OwnershipVerificationCertificateArn string `json:"OwnershipVerificationCertificateArn,omitempty"` + // SecurityPolicy AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy diff --git a/cloudformation/appsync/aws-appsync-graphqlapi.go b/cloudformation/appsync/aws-appsync-graphqlapi.go index 00bfbe0fed..0c51200cc7 100644 --- a/cloudformation/appsync/aws-appsync-graphqlapi.go +++ b/cloudformation/appsync/aws-appsync-graphqlapi.go @@ -22,6 +22,11 @@ type GraphQLApi struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype AuthenticationType string `json:"AuthenticationType,omitempty"` + // LambdaAuthorizerConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig + LambdaAuthorizerConfig *GraphQLApi_LambdaAuthorizerConfig `json:"LambdaAuthorizerConfig,omitempty"` + // LogConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig diff --git a/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go b/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go index b5ecfff2a2..e999f45e99 100644 --- a/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go +++ b/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go @@ -13,6 +13,11 @@ type GraphQLApi_AdditionalAuthenticationProvider struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype AuthenticationType string `json:"AuthenticationType,omitempty"` + // LambdaAuthorizerConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-lambdaauthorizerconfig + LambdaAuthorizerConfig *GraphQLApi_LambdaAuthorizerConfig `json:"LambdaAuthorizerConfig,omitempty"` + // OpenIDConnectConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-openidconnectconfig diff --git a/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go b/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go new file mode 100644 index 0000000000..7479c8e2d3 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go @@ -0,0 +1,126 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// PublicTypeVersion AWS CloudFormation Resource (AWS::CloudFormation::PublicTypeVersion) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html +type PublicTypeVersion struct { + + // Arn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-arn + Arn string `json:"Arn,omitempty"` + + // LogDeliveryBucket AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-logdeliverybucket + LogDeliveryBucket string `json:"LogDeliveryBucket,omitempty"` + + // PublicVersionNumber AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-publicversionnumber + PublicVersionNumber string `json:"PublicVersionNumber,omitempty"` + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-type + Type string `json:"Type,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-typename + TypeName string `json:"TypeName,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 *PublicTypeVersion) AWSCloudFormationType() string { + return "AWS::CloudFormation::PublicTypeVersion" +} + +// 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 PublicTypeVersion) MarshalJSON() ([]byte, error) { + type Properties PublicTypeVersion + 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 *PublicTypeVersion) UnmarshalJSON(b []byte) error { + type Properties PublicTypeVersion + res := &struct { + Type string + Properties *Properties + DependsOn []string + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PublicTypeVersion(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + 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/cloudformation/aws-cloudformation-publisher.go b/cloudformation/cloudformation/aws-cloudformation-publisher.go new file mode 100644 index 0000000000..bfd25a4012 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-publisher.go @@ -0,0 +1,111 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Publisher AWS CloudFormation Resource (AWS::CloudFormation::Publisher) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html +type Publisher struct { + + // AcceptTermsAndConditions AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-accepttermsandconditions + AcceptTermsAndConditions bool `json:"AcceptTermsAndConditions"` + + // ConnectionArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-connectionarn + ConnectionArn string `json:"ConnectionArn,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 *Publisher) AWSCloudFormationType() string { + return "AWS::CloudFormation::Publisher" +} + +// 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 Publisher) MarshalJSON() ([]byte, error) { + type Properties Publisher + 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 *Publisher) UnmarshalJSON(b []byte) error { + type Properties Publisher + res := &struct { + Type string + Properties *Properties + DependsOn []string + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Publisher(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + 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/cloudformation/aws-cloudformation-typeactivation.go b/cloudformation/cloudformation/aws-cloudformation-typeactivation.go new file mode 100644 index 0000000000..604626d211 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-typeactivation.go @@ -0,0 +1,151 @@ +package cloudformation + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// TypeActivation AWS CloudFormation Resource (AWS::CloudFormation::TypeActivation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html +type TypeActivation struct { + + // AutoUpdate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-autoupdate + AutoUpdate bool `json:"AutoUpdate,omitempty"` + + // ExecutionRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-executionrolearn + ExecutionRoleArn string `json:"ExecutionRoleArn,omitempty"` + + // LoggingConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-loggingconfig + LoggingConfig *TypeActivation_LoggingConfig `json:"LoggingConfig,omitempty"` + + // MajorVersion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-majorversion + MajorVersion string `json:"MajorVersion,omitempty"` + + // PublicTypeArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publictypearn + PublicTypeArn string `json:"PublicTypeArn,omitempty"` + + // PublisherId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publisherid + PublisherId string `json:"PublisherId,omitempty"` + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-type + Type string `json:"Type,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typename + TypeName string `json:"TypeName,omitempty"` + + // TypeNameAlias AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typenamealias + TypeNameAlias string `json:"TypeNameAlias,omitempty"` + + // VersionBump AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-versionbump + VersionBump string `json:"VersionBump,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 *TypeActivation) AWSCloudFormationType() string { + return "AWS::CloudFormation::TypeActivation" +} + +// 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 TypeActivation) MarshalJSON() ([]byte, error) { + type Properties TypeActivation + 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 *TypeActivation) UnmarshalJSON(b []byte) error { + type Properties TypeActivation + res := &struct { + Type string + Properties *Properties + DependsOn []string + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = TypeActivation(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + 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/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go b/cloudformation/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go new file mode 100644 index 0000000000..85125e6901 --- /dev/null +++ b/cloudformation/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go @@ -0,0 +1,40 @@ +package cloudformation + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// TypeActivation_LoggingConfig AWS CloudFormation Resource (AWS::CloudFormation::TypeActivation.LoggingConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html +type TypeActivation_LoggingConfig struct { + + // LogGroupName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html#cfn-cloudformation-typeactivation-loggingconfig-loggroupname + LogGroupName string `json:"LogGroupName,omitempty"` + + // LogRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html#cfn-cloudformation-typeactivation-loggingconfig-logrolearn + LogRoleArn string `json:"LogRoleArn,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 *TypeActivation_LoggingConfig) AWSCloudFormationType() string { + return "AWS::CloudFormation::TypeActivation.LoggingConfig" +} diff --git a/cloudformation/connect/aws-connect-quickconnect.go b/cloudformation/connect/aws-connect-quickconnect.go new file mode 100644 index 0000000000..d6d1f72933 --- /dev/null +++ b/cloudformation/connect/aws-connect-quickconnect.go @@ -0,0 +1,127 @@ +package connect + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v5/cloudformation/policies" + "github.com/awslabs/goformation/v5/cloudformation/tags" +) + +// QuickConnect AWS CloudFormation Resource (AWS::Connect::QuickConnect) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html +type QuickConnect struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-description + Description string `json:"Description,omitempty"` + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-instancearn + InstanceArn string `json:"InstanceArn,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-name + Name string `json:"Name,omitempty"` + + // QuickConnectConfig AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-quickconnectconfig + QuickConnectConfig *QuickConnect_QuickConnectConfig `json:"QuickConnectConfig,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-tags + Tags []tags.Tag `json:"Tags,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 *QuickConnect) AWSCloudFormationType() string { + return "AWS::Connect::QuickConnect" +} + +// 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 QuickConnect) MarshalJSON() ([]byte, error) { + type Properties QuickConnect + 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 *QuickConnect) UnmarshalJSON(b []byte) error { + type Properties QuickConnect + res := &struct { + Type string + Properties *Properties + DependsOn []string + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = QuickConnect(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + 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-quickconnect_phonenumberquickconnectconfig.go b/cloudformation/connect/aws-connect-quickconnect_phonenumberquickconnectconfig.go new file mode 100644 index 0000000000..310b927df7 --- /dev/null +++ b/cloudformation/connect/aws-connect-quickconnect_phonenumberquickconnectconfig.go @@ -0,0 +1,35 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// QuickConnect_PhoneNumberQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html +type QuickConnect_PhoneNumberQuickConnectConfig struct { + + // PhoneNumber AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html#cfn-connect-quickconnect-phonenumberquickconnectconfig-phonenumber + PhoneNumber string `json:"PhoneNumber,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 *QuickConnect_PhoneNumberQuickConnectConfig) AWSCloudFormationType() string { + return "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" +} diff --git a/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go b/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go new file mode 100644 index 0000000000..a3d6c163b2 --- /dev/null +++ b/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go @@ -0,0 +1,40 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// QuickConnect_QueueQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.QueueQuickConnectConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html +type QuickConnect_QueueQuickConnectConfig struct { + + // ContactFlowArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html#cfn-connect-quickconnect-queuequickconnectconfig-contactflowarn + ContactFlowArn string `json:"ContactFlowArn,omitempty"` + + // QueueArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html#cfn-connect-quickconnect-queuequickconnectconfig-queuearn + QueueArn string `json:"QueueArn,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 *QuickConnect_QueueQuickConnectConfig) AWSCloudFormationType() string { + return "AWS::Connect::QuickConnect.QueueQuickConnectConfig" +} diff --git a/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go b/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go new file mode 100644 index 0000000000..3559f14d36 --- /dev/null +++ b/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go @@ -0,0 +1,50 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// QuickConnect_QuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.QuickConnectConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html +type QuickConnect_QuickConnectConfig struct { + + // PhoneConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-phoneconfig + PhoneConfig *QuickConnect_PhoneNumberQuickConnectConfig `json:"PhoneConfig,omitempty"` + + // QueueConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-queueconfig + QueueConfig *QuickConnect_QueueQuickConnectConfig `json:"QueueConfig,omitempty"` + + // QuickConnectType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-quickconnecttype + QuickConnectType string `json:"QuickConnectType,omitempty"` + + // UserConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-userconfig + UserConfig *QuickConnect_UserQuickConnectConfig `json:"UserConfig,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 *QuickConnect_QuickConnectConfig) AWSCloudFormationType() string { + return "AWS::Connect::QuickConnect.QuickConnectConfig" +} diff --git a/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go b/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go new file mode 100644 index 0000000000..babeb23158 --- /dev/null +++ b/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go @@ -0,0 +1,40 @@ +package connect + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// QuickConnect_UserQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.UserQuickConnectConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html +type QuickConnect_UserQuickConnectConfig struct { + + // ContactFlowArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html#cfn-connect-quickconnect-userquickconnectconfig-contactflowarn + ContactFlowArn string `json:"ContactFlowArn,omitempty"` + + // UserArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html#cfn-connect-quickconnect-userquickconnectconfig-userarn + UserArn string `json:"UserArn,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 *QuickConnect_UserQuickConnectConfig) AWSCloudFormationType() string { + return "AWS::Connect::QuickConnect.UserQuickConnectConfig" +} diff --git a/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go new file mode 100644 index 0000000000..73281da628 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go @@ -0,0 +1,45 @@ +package fsx + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// FileSystem_AuditLogConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.AuditLogConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html +type FileSystem_AuditLogConfiguration struct { + + // AuditLogDestination AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-auditlogdestination + AuditLogDestination string `json:"AuditLogDestination,omitempty"` + + // FileAccessAuditLogLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileaccessauditloglevel + FileAccessAuditLogLevel string `json:"FileAccessAuditLogLevel,omitempty"` + + // FileShareAccessAuditLogLevel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileshareaccessauditloglevel + FileShareAccessAuditLogLevel string `json:"FileShareAccessAuditLogLevel,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 *FileSystem_AuditLogConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::FileSystem.AuditLogConfiguration" +} diff --git a/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go index 2547b91147..000223d8f9 100644 --- a/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go +++ b/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go @@ -18,6 +18,11 @@ type FileSystem_WindowsConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-aliases Aliases []string `json:"Aliases,omitempty"` + // AuditLogConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration + AuditLogConfiguration *FileSystem_AuditLogConfiguration `json:"AuditLogConfiguration,omitempty"` + // AutomaticBackupRetentionDays AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-automaticbackupretentiondays diff --git a/cloudformation/iot/aws-iot-topicrule_timestreamaction.go b/cloudformation/iot/aws-iot-topicrule_timestreamaction.go index 07b51675dd..be9218275c 100644 --- a/cloudformation/iot/aws-iot-topicrule_timestreamaction.go +++ b/cloudformation/iot/aws-iot-topicrule_timestreamaction.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html type TopicRule_TimestreamAction struct { + // BatchMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-batchmode + BatchMode bool `json:"BatchMode,omitempty"` + // DatabaseName AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-databasename diff --git a/cloudformation/qldb/aws-qldb-ledger.go b/cloudformation/qldb/aws-qldb-ledger.go index 0dc084386a..094fd3e541 100644 --- a/cloudformation/qldb/aws-qldb-ledger.go +++ b/cloudformation/qldb/aws-qldb-ledger.go @@ -18,6 +18,11 @@ type Ledger struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html#cfn-qldb-ledger-deletionprotection DeletionProtection bool `json:"DeletionProtection,omitempty"` + // KmsKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html#cfn-qldb-ledger-kmskey + KmsKey string `json:"KmsKey,omitempty"` + // Name AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-qldb-ledger.html#cfn-qldb-ledger-name diff --git a/cloudformation/redshift/aws-redshift-cluster.go b/cloudformation/redshift/aws-redshift-cluster.go index 3c499023b0..2c695264e4 100644 --- a/cloudformation/redshift/aws-redshift-cluster.go +++ b/cloudformation/redshift/aws-redshift-cluster.go @@ -76,7 +76,7 @@ type Cluster struct { // Endpoint AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-endpoint - Endpoint interface{} `json:"Endpoint,omitempty"` + Endpoint *Cluster_Endpoint `json:"Endpoint,omitempty"` // HsmClientCertificateIdentifier AWS CloudFormation Property // Required: false diff --git a/cloudformation/redshift/aws-redshift-cluster_endpoint.go b/cloudformation/redshift/aws-redshift-cluster_endpoint.go new file mode 100644 index 0000000000..4338767e09 --- /dev/null +++ b/cloudformation/redshift/aws-redshift-cluster_endpoint.go @@ -0,0 +1,40 @@ +package redshift + +import ( + "github.com/awslabs/goformation/v5/cloudformation/policies" +) + +// Cluster_Endpoint AWS CloudFormation Resource (AWS::Redshift::Cluster.Endpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-endpoint.html +type Cluster_Endpoint struct { + + // Address AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-endpoint.html#cfn-redshift-cluster-endpoint-address + Address string `json:"Address,omitempty"` + + // Port AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-endpoint.html#cfn-redshift-cluster-endpoint-port + Port string `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 *Cluster_Endpoint) AWSCloudFormationType() string { + return "AWS::Redshift::Cluster.Endpoint" +} diff --git a/cloudformation/wafv2/aws-wafv2-rulegroup_sizeconstraintstatement.go b/cloudformation/wafv2/aws-wafv2-rulegroup_sizeconstraintstatement.go index cac1674cf5..1a2b23ccc6 100644 --- a/cloudformation/wafv2/aws-wafv2-rulegroup_sizeconstraintstatement.go +++ b/cloudformation/wafv2/aws-wafv2-rulegroup_sizeconstraintstatement.go @@ -21,7 +21,7 @@ type RuleGroup_SizeConstraintStatement struct { // Size AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sizeconstraintstatement.html#cfn-wafv2-rulegroup-sizeconstraintstatement-size - Size int `json:"Size"` + Size float64 `json:"Size"` // TextTransformations AWS CloudFormation Property // Required: true diff --git a/cloudformation/wafv2/aws-wafv2-webacl_sizeconstraintstatement.go b/cloudformation/wafv2/aws-wafv2-webacl_sizeconstraintstatement.go index 34f3887f00..cb5f345f43 100644 --- a/cloudformation/wafv2/aws-wafv2-webacl_sizeconstraintstatement.go +++ b/cloudformation/wafv2/aws-wafv2-webacl_sizeconstraintstatement.go @@ -21,7 +21,7 @@ type WebACL_SizeConstraintStatement struct { // Size AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-sizeconstraintstatement.html#cfn-wafv2-webacl-sizeconstraintstatement-size - Size int `json:"Size"` + Size float64 `json:"Size"` // TextTransformations AWS CloudFormation Property // Required: true diff --git a/schema/cloudformation.go b/schema/cloudformation.go index f12c41b99e..41ffe742e4 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -4469,6 +4469,9 @@ var CloudformationSchema = `{ "EndpointType": { "type": "string" }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, "SecurityPolicy": { "type": "string" } @@ -11414,6 +11417,9 @@ var CloudformationSchema = `{ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "LogConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, @@ -11466,6 +11472,9 @@ var CloudformationSchema = `{ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "OpenIDConnectConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, @@ -11498,6 +11507,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { @@ -17134,6 +17158,141 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::PublicTypeVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Arn": { + "type": "string" + }, + "LogDeliveryBucket": { + "type": "string" + }, + "PublicVersionNumber": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::PublicTypeVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::Publisher": { + "additionalProperties": false, + "properties": { + "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": { + "AcceptTermsAndConditions": { + "type": "boolean" + }, + "ConnectionArn": { + "type": "string" + } + }, + "required": [ + "AcceptTermsAndConditions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Publisher" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CloudFormation::ResourceDefaultVersion": { "additionalProperties": false, "properties": { @@ -17580,6 +17739,103 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::TypeActivation": { + "additionalProperties": false, + "properties": { + "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": { + "AutoUpdate": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + }, + "MajorVersion": { + "type": "string" + }, + "PublicTypeArn": { + "type": "string" + }, + "PublisherId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + }, + "TypeNameAlias": { + "type": "string" + }, + "VersionBump": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::TypeActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { @@ -25522,6 +25778,150 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Connect::QuickConnect": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name", + "QuickConnectConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::QuickConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneNumber": { + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "QueueArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + }, + "QuickConnectType": { + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "UserArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "UserArn" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -48690,6 +49090,25 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FSx::FileSystem.AuditLogConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogDestination": { + "type": "string" + }, + "FileAccessAuditLogLevel": { + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -48771,6 +49190,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + }, "AutomaticBackupRetentionDays": { "type": "number" }, @@ -61607,6 +62029,9 @@ var CloudformationSchema = `{ "AWS::IoT::TopicRule.TimestreamAction": { "additionalProperties": false, "properties": { + "BatchMode": { + "type": "boolean" + }, "DatabaseName": { "type": "string" }, @@ -85300,6 +85725,9 @@ var CloudformationSchema = `{ "DeletionProtection": { "type": "boolean" }, + "KmsKey": { + "type": "string" + }, "Name": { "type": "string" }, @@ -89298,7 +89726,7 @@ var CloudformationSchema = `{ "type": "boolean" }, "Endpoint": { - "type": "object" + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" }, "HsmClientCertificateIdentifier": { "type": "string" @@ -89391,6 +89819,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Redshift::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Redshift::Cluster.LoggingProperties": { "additionalProperties": false, "properties": { @@ -108899,6 +109339,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion" }, + { + "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Publisher" + }, { "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion" }, @@ -108911,6 +109357,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::StackSet" }, + { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation" + }, { "$ref": "#/definitions/AWS::CloudFormation::WaitCondition" }, @@ -109082,6 +109531,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 810d94d603..2062645883 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -4466,6 +4466,9 @@ "EndpointType": { "type": "string" }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, "SecurityPolicy": { "type": "string" } @@ -11411,6 +11414,9 @@ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "LogConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, @@ -11463,6 +11469,9 @@ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "OpenIDConnectConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, @@ -11495,6 +11504,21 @@ }, "type": "object" }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { @@ -17131,6 +17155,141 @@ ], "type": "object" }, + "AWS::CloudFormation::PublicTypeVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Arn": { + "type": "string" + }, + "LogDeliveryBucket": { + "type": "string" + }, + "PublicVersionNumber": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::PublicTypeVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::Publisher": { + "additionalProperties": false, + "properties": { + "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": { + "AcceptTermsAndConditions": { + "type": "boolean" + }, + "ConnectionArn": { + "type": "string" + } + }, + "required": [ + "AcceptTermsAndConditions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Publisher" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CloudFormation::ResourceDefaultVersion": { "additionalProperties": false, "properties": { @@ -17577,6 +17736,103 @@ ], "type": "object" }, + "AWS::CloudFormation::TypeActivation": { + "additionalProperties": false, + "properties": { + "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": { + "AutoUpdate": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + }, + "MajorVersion": { + "type": "string" + }, + "PublicTypeArn": { + "type": "string" + }, + "PublisherId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + }, + "TypeNameAlias": { + "type": "string" + }, + "VersionBump": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::TypeActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { @@ -25519,6 +25775,150 @@ ], "type": "object" }, + "AWS::Connect::QuickConnect": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name", + "QuickConnectConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::QuickConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneNumber": { + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "QueueArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + }, + "QuickConnectType": { + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "UserArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "UserArn" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -48687,6 +49087,25 @@ ], "type": "object" }, + "AWS::FSx::FileSystem.AuditLogConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogDestination": { + "type": "string" + }, + "FileAccessAuditLogLevel": { + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -48768,6 +49187,9 @@ }, "type": "array" }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + }, "AutomaticBackupRetentionDays": { "type": "number" }, @@ -61604,6 +62026,9 @@ "AWS::IoT::TopicRule.TimestreamAction": { "additionalProperties": false, "properties": { + "BatchMode": { + "type": "boolean" + }, "DatabaseName": { "type": "string" }, @@ -85297,6 +85722,9 @@ "DeletionProtection": { "type": "boolean" }, + "KmsKey": { + "type": "string" + }, "Name": { "type": "string" }, @@ -89295,7 +89723,7 @@ "type": "boolean" }, "Endpoint": { - "type": "object" + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" }, "HsmClientCertificateIdentifier": { "type": "string" @@ -89388,6 +89816,18 @@ ], "type": "object" }, + "AWS::Redshift::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Redshift::Cluster.LoggingProperties": { "additionalProperties": false, "properties": { @@ -108896,6 +109336,12 @@ { "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion" }, + { + "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Publisher" + }, { "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion" }, @@ -108908,6 +109354,9 @@ { "$ref": "#/definitions/AWS::CloudFormation::StackSet" }, + { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation" + }, { "$ref": "#/definitions/AWS::CloudFormation::WaitCondition" }, @@ -109079,6 +109528,9 @@ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, diff --git a/schema/sam.go b/schema/sam.go index 810e986eed..4a54de1314 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -4469,6 +4469,9 @@ var SamSchema = `{ "EndpointType": { "type": "string" }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, "SecurityPolicy": { "type": "string" } @@ -11414,6 +11417,9 @@ var SamSchema = `{ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "LogConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, @@ -11466,6 +11472,9 @@ var SamSchema = `{ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "OpenIDConnectConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, @@ -11498,6 +11507,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { @@ -17134,6 +17158,141 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::PublicTypeVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Arn": { + "type": "string" + }, + "LogDeliveryBucket": { + "type": "string" + }, + "PublicVersionNumber": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::PublicTypeVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::Publisher": { + "additionalProperties": false, + "properties": { + "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": { + "AcceptTermsAndConditions": { + "type": "boolean" + }, + "ConnectionArn": { + "type": "string" + } + }, + "required": [ + "AcceptTermsAndConditions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Publisher" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CloudFormation::ResourceDefaultVersion": { "additionalProperties": false, "properties": { @@ -17580,6 +17739,103 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudFormation::TypeActivation": { + "additionalProperties": false, + "properties": { + "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": { + "AutoUpdate": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + }, + "MajorVersion": { + "type": "string" + }, + "PublicTypeArn": { + "type": "string" + }, + "PublisherId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + }, + "TypeNameAlias": { + "type": "string" + }, + "VersionBump": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::TypeActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { @@ -25522,6 +25778,150 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Connect::QuickConnect": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name", + "QuickConnectConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::QuickConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneNumber": { + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "QueueArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + }, + "QuickConnectType": { + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "UserArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "UserArn" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -48690,6 +49090,25 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FSx::FileSystem.AuditLogConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogDestination": { + "type": "string" + }, + "FileAccessAuditLogLevel": { + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -48771,6 +49190,9 @@ var SamSchema = `{ }, "type": "array" }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + }, "AutomaticBackupRetentionDays": { "type": "number" }, @@ -61607,6 +62029,9 @@ var SamSchema = `{ "AWS::IoT::TopicRule.TimestreamAction": { "additionalProperties": false, "properties": { + "BatchMode": { + "type": "boolean" + }, "DatabaseName": { "type": "string" }, @@ -85300,6 +85725,9 @@ var SamSchema = `{ "DeletionProtection": { "type": "boolean" }, + "KmsKey": { + "type": "string" + }, "Name": { "type": "string" }, @@ -89298,7 +89726,7 @@ var SamSchema = `{ "type": "boolean" }, "Endpoint": { - "type": "object" + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" }, "HsmClientCertificateIdentifier": { "type": "string" @@ -89391,6 +89819,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Redshift::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Redshift::Cluster.LoggingProperties": { "additionalProperties": false, "properties": { @@ -111559,6 +111999,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion" }, + { + "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Publisher" + }, { "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion" }, @@ -111571,6 +112017,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::CloudFormation::StackSet" }, + { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation" + }, { "$ref": "#/definitions/AWS::CloudFormation::WaitCondition" }, @@ -111742,6 +112191,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index be82d20bc7..e6c672f419 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -4466,6 +4466,9 @@ "EndpointType": { "type": "string" }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, "SecurityPolicy": { "type": "string" } @@ -11411,6 +11414,9 @@ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "LogConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" }, @@ -11463,6 +11469,9 @@ "AuthenticationType": { "type": "string" }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, "OpenIDConnectConfig": { "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" }, @@ -11495,6 +11504,21 @@ }, "type": "object" }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AppSync::GraphQLApi.LogConfig": { "additionalProperties": false, "properties": { @@ -17131,6 +17155,141 @@ ], "type": "object" }, + "AWS::CloudFormation::PublicTypeVersion": { + "additionalProperties": false, + "properties": { + "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": { + "Arn": { + "type": "string" + }, + "LogDeliveryBucket": { + "type": "string" + }, + "PublicVersionNumber": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::PublicTypeVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::Publisher": { + "additionalProperties": false, + "properties": { + "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": { + "AcceptTermsAndConditions": { + "type": "boolean" + }, + "ConnectionArn": { + "type": "string" + } + }, + "required": [ + "AcceptTermsAndConditions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Publisher" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::CloudFormation::ResourceDefaultVersion": { "additionalProperties": false, "properties": { @@ -17577,6 +17736,103 @@ ], "type": "object" }, + "AWS::CloudFormation::TypeActivation": { + "additionalProperties": false, + "properties": { + "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": { + "AutoUpdate": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + }, + "MajorVersion": { + "type": "string" + }, + "PublicTypeArn": { + "type": "string" + }, + "PublisherId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + }, + "TypeNameAlias": { + "type": "string" + }, + "VersionBump": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::TypeActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::CloudFormation::WaitCondition": { "additionalProperties": false, "properties": { @@ -25519,6 +25775,150 @@ ], "type": "object" }, + "AWS::Connect::QuickConnect": { + "additionalProperties": false, + "properties": { + "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": { + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name", + "QuickConnectConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::QuickConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneNumber": { + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "QueueArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + }, + "QuickConnectType": { + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "UserArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "UserArn" + ], + "type": "object" + }, "AWS::CustomerProfiles::Domain": { "additionalProperties": false, "properties": { @@ -48687,6 +49087,25 @@ ], "type": "object" }, + "AWS::FSx::FileSystem.AuditLogConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogDestination": { + "type": "string" + }, + "FileAccessAuditLogLevel": { + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, "AWS::FSx::FileSystem.LustreConfiguration": { "additionalProperties": false, "properties": { @@ -48768,6 +49187,9 @@ }, "type": "array" }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + }, "AutomaticBackupRetentionDays": { "type": "number" }, @@ -61604,6 +62026,9 @@ "AWS::IoT::TopicRule.TimestreamAction": { "additionalProperties": false, "properties": { + "BatchMode": { + "type": "boolean" + }, "DatabaseName": { "type": "string" }, @@ -85297,6 +85722,9 @@ "DeletionProtection": { "type": "boolean" }, + "KmsKey": { + "type": "string" + }, "Name": { "type": "string" }, @@ -89295,7 +89723,7 @@ "type": "boolean" }, "Endpoint": { - "type": "object" + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" }, "HsmClientCertificateIdentifier": { "type": "string" @@ -89388,6 +89816,18 @@ ], "type": "object" }, + "AWS::Redshift::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Redshift::Cluster.LoggingProperties": { "additionalProperties": false, "properties": { @@ -111556,6 +111996,12 @@ { "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion" }, + { + "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Publisher" + }, { "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion" }, @@ -111568,6 +112014,9 @@ { "$ref": "#/definitions/AWS::CloudFormation::StackSet" }, + { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation" + }, { "$ref": "#/definitions/AWS::CloudFormation::WaitCondition" }, @@ -111739,6 +112188,9 @@ { "$ref": "#/definitions/AWS::Config::StoredQuery" }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, { "$ref": "#/definitions/AWS::CustomerProfiles::Domain" },