diff --git a/cloudformation/all.go b/cloudformation/all.go index 8985b56123..7dd4eb70bf 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -468,7 +468,9 @@ func AllResources() map[string]Resource { "AWS::Connect::IntegrationAssociation": &connect.IntegrationAssociation{}, "AWS::Connect::PhoneNumber": &connect.PhoneNumber{}, "AWS::Connect::Prompt": &connect.Prompt{}, + "AWS::Connect::Queue": &connect.Queue{}, "AWS::Connect::QuickConnect": &connect.QuickConnect{}, + "AWS::Connect::RoutingProfile": &connect.RoutingProfile{}, "AWS::Connect::Rule": &connect.Rule{}, "AWS::Connect::SecurityKey": &connect.SecurityKey{}, "AWS::Connect::TaskTemplate": &connect.TaskTemplate{}, @@ -762,15 +764,18 @@ func AllResources() map[string]Resource { "AWS::HealthLake::FHIRDatastore": &healthlake.FHIRDatastore{}, "AWS::IAM::AccessKey": &iam.AccessKey{}, "AWS::IAM::Group": &iam.Group{}, + "AWS::IAM::GroupPolicy": &iam.GroupPolicy{}, "AWS::IAM::InstanceProfile": &iam.InstanceProfile{}, "AWS::IAM::ManagedPolicy": &iam.ManagedPolicy{}, "AWS::IAM::OIDCProvider": &iam.OIDCProvider{}, "AWS::IAM::Policy": &iam.Policy{}, "AWS::IAM::Role": &iam.Role{}, + "AWS::IAM::RolePolicy": &iam.RolePolicy{}, "AWS::IAM::SAMLProvider": &iam.SAMLProvider{}, "AWS::IAM::ServerCertificate": &iam.ServerCertificate{}, "AWS::IAM::ServiceLinkedRole": &iam.ServiceLinkedRole{}, "AWS::IAM::User": &iam.User{}, + "AWS::IAM::UserPolicy": &iam.UserPolicy{}, "AWS::IAM::UserToGroupAddition": &iam.UserToGroupAddition{}, "AWS::IAM::VirtualMFADevice": &iam.VirtualMFADevice{}, "AWS::IVS::Channel": &ivs.Channel{}, @@ -920,6 +925,7 @@ func AllResources() map[string]Resource { "AWS::Location::RouteCalculator": &location.RouteCalculator{}, "AWS::Location::Tracker": &location.Tracker{}, "AWS::Location::TrackerConsumer": &location.TrackerConsumer{}, + "AWS::Logs::AccountPolicy": &logs.AccountPolicy{}, "AWS::Logs::Destination": &logs.Destination{}, "AWS::Logs::LogGroup": &logs.LogGroup{}, "AWS::Logs::LogStream": &logs.LogStream{}, @@ -1174,6 +1180,7 @@ func AllResources() map[string]Resource { "AWS::SES::VdmAttributes": &ses.VdmAttributes{}, "AWS::SNS::Subscription": &sns.Subscription{}, "AWS::SNS::Topic": &sns.Topic{}, + "AWS::SNS::TopicInlinePolicy": &sns.TopicInlinePolicy{}, "AWS::SNS::TopicPolicy": &sns.TopicPolicy{}, "AWS::SQS::Queue": &sqs.Queue{}, "AWS::SQS::QueuePolicy": &sqs.QueuePolicy{}, @@ -6986,6 +6993,30 @@ func (t *Template) GetConnectPromptWithName(name string) (*connect.Prompt, error return nil, fmt.Errorf("resource %q of type connect.Prompt not found", name) } +// GetAllConnectQueueResources retrieves all connect.Queue items from an AWS CloudFormation template +func (t *Template) GetAllConnectQueueResources() map[string]*connect.Queue { + results := map[string]*connect.Queue{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.Queue: + results[name] = resource + } + } + return results +} + +// GetConnectQueueWithName retrieves all connect.Queue items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectQueueWithName(name string) (*connect.Queue, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.Queue: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.Queue 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{} @@ -7010,6 +7041,30 @@ func (t *Template) GetConnectQuickConnectWithName(name string) (*connect.QuickCo return nil, fmt.Errorf("resource %q of type connect.QuickConnect not found", name) } +// GetAllConnectRoutingProfileResources retrieves all connect.RoutingProfile items from an AWS CloudFormation template +func (t *Template) GetAllConnectRoutingProfileResources() map[string]*connect.RoutingProfile { + results := map[string]*connect.RoutingProfile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *connect.RoutingProfile: + results[name] = resource + } + } + return results +} + +// GetConnectRoutingProfileWithName retrieves all connect.RoutingProfile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetConnectRoutingProfileWithName(name string) (*connect.RoutingProfile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *connect.RoutingProfile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type connect.RoutingProfile not found", name) +} + // GetAllConnectRuleResources retrieves all connect.Rule items from an AWS CloudFormation template func (t *Template) GetAllConnectRuleResources() map[string]*connect.Rule { results := map[string]*connect.Rule{} @@ -14042,6 +14097,30 @@ func (t *Template) GetIAMGroupWithName(name string) (*iam.Group, error) { return nil, fmt.Errorf("resource %q of type iam.Group not found", name) } +// GetAllIAMGroupPolicyResources retrieves all iam.GroupPolicy items from an AWS CloudFormation template +func (t *Template) GetAllIAMGroupPolicyResources() map[string]*iam.GroupPolicy { + results := map[string]*iam.GroupPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.GroupPolicy: + results[name] = resource + } + } + return results +} + +// GetIAMGroupPolicyWithName retrieves all iam.GroupPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMGroupPolicyWithName(name string) (*iam.GroupPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.GroupPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.GroupPolicy not found", name) +} + // GetAllIAMInstanceProfileResources retrieves all iam.InstanceProfile items from an AWS CloudFormation template func (t *Template) GetAllIAMInstanceProfileResources() map[string]*iam.InstanceProfile { results := map[string]*iam.InstanceProfile{} @@ -14162,6 +14241,30 @@ func (t *Template) GetIAMRoleWithName(name string) (*iam.Role, error) { return nil, fmt.Errorf("resource %q of type iam.Role not found", name) } +// GetAllIAMRolePolicyResources retrieves all iam.RolePolicy items from an AWS CloudFormation template +func (t *Template) GetAllIAMRolePolicyResources() map[string]*iam.RolePolicy { + results := map[string]*iam.RolePolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.RolePolicy: + results[name] = resource + } + } + return results +} + +// GetIAMRolePolicyWithName retrieves all iam.RolePolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMRolePolicyWithName(name string) (*iam.RolePolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.RolePolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.RolePolicy not found", name) +} + // GetAllIAMSAMLProviderResources retrieves all iam.SAMLProvider items from an AWS CloudFormation template func (t *Template) GetAllIAMSAMLProviderResources() map[string]*iam.SAMLProvider { results := map[string]*iam.SAMLProvider{} @@ -14258,6 +14361,30 @@ func (t *Template) GetIAMUserWithName(name string) (*iam.User, error) { return nil, fmt.Errorf("resource %q of type iam.User not found", name) } +// GetAllIAMUserPolicyResources retrieves all iam.UserPolicy items from an AWS CloudFormation template +func (t *Template) GetAllIAMUserPolicyResources() map[string]*iam.UserPolicy { + results := map[string]*iam.UserPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iam.UserPolicy: + results[name] = resource + } + } + return results +} + +// GetIAMUserPolicyWithName retrieves all iam.UserPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIAMUserPolicyWithName(name string) (*iam.UserPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iam.UserPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iam.UserPolicy not found", name) +} + // GetAllIAMUserToGroupAdditionResources retrieves all iam.UserToGroupAddition items from an AWS CloudFormation template func (t *Template) GetAllIAMUserToGroupAdditionResources() map[string]*iam.UserToGroupAddition { results := map[string]*iam.UserToGroupAddition{} @@ -17834,6 +17961,30 @@ func (t *Template) GetLocationTrackerConsumerWithName(name string) (*location.Tr return nil, fmt.Errorf("resource %q of type location.TrackerConsumer not found", name) } +// GetAllLogsAccountPolicyResources retrieves all logs.AccountPolicy items from an AWS CloudFormation template +func (t *Template) GetAllLogsAccountPolicyResources() map[string]*logs.AccountPolicy { + results := map[string]*logs.AccountPolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *logs.AccountPolicy: + results[name] = resource + } + } + return results +} + +// GetLogsAccountPolicyWithName retrieves all logs.AccountPolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetLogsAccountPolicyWithName(name string) (*logs.AccountPolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *logs.AccountPolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type logs.AccountPolicy not found", name) +} + // GetAllLogsDestinationResources retrieves all logs.Destination items from an AWS CloudFormation template func (t *Template) GetAllLogsDestinationResources() map[string]*logs.Destination { results := map[string]*logs.Destination{} @@ -23930,6 +24081,30 @@ func (t *Template) GetSNSTopicWithName(name string) (*sns.Topic, error) { return nil, fmt.Errorf("resource %q of type sns.Topic not found", name) } +// GetAllSNSTopicInlinePolicyResources retrieves all sns.TopicInlinePolicy items from an AWS CloudFormation template +func (t *Template) GetAllSNSTopicInlinePolicyResources() map[string]*sns.TopicInlinePolicy { + results := map[string]*sns.TopicInlinePolicy{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *sns.TopicInlinePolicy: + results[name] = resource + } + } + return results +} + +// GetSNSTopicInlinePolicyWithName retrieves all sns.TopicInlinePolicy items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetSNSTopicInlinePolicyWithName(name string) (*sns.TopicInlinePolicy, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *sns.TopicInlinePolicy: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type sns.TopicInlinePolicy not found", name) +} + // GetAllSNSTopicPolicyResources retrieves all sns.TopicPolicy items from an AWS CloudFormation template func (t *Template) GetAllSNSTopicPolicyResources() map[string]*sns.TopicPolicy { results := map[string]*sns.TopicPolicy{} diff --git a/cloudformation/amazonmq/aws-amazonmq-broker.go b/cloudformation/amazonmq/aws-amazonmq-broker.go index 6af85046a3..87bef33715 100644 --- a/cloudformation/amazonmq/aws-amazonmq-broker.go +++ b/cloudformation/amazonmq/aws-amazonmq-broker.go @@ -33,6 +33,16 @@ type Broker struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-configuration Configuration *Broker_ConfigurationId `json:"Configuration,omitempty"` + // DataReplicationMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-datareplicationmode + DataReplicationMode *string `json:"DataReplicationMode,omitempty"` + + // DataReplicationPrimaryBrokerArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-datareplicationprimarybrokerarn + DataReplicationPrimaryBrokerArn *string `json:"DataReplicationPrimaryBrokerArn,omitempty"` + // DeploymentMode AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-deploymentmode diff --git a/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go b/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go index 1be5c030c1..f265a56583 100644 --- a/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go +++ b/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go @@ -90,6 +90,11 @@ type JobDefinition_ContainerProperties struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-resourcerequirements ResourceRequirements []JobDefinition_ResourceRequirement `json:"ResourceRequirements,omitempty"` + // RuntimePlatform AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-runtimeplatform + RuntimePlatform *JobDefinition_RuntimePlatform `json:"RuntimePlatform,omitempty"` + // Secrets AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-secrets diff --git a/cloudformation/batch/aws-batch-jobdefinition_runtimeplatform.go b/cloudformation/batch/aws-batch-jobdefinition_runtimeplatform.go new file mode 100644 index 0000000000..8a1644b782 --- /dev/null +++ b/cloudformation/batch/aws-batch-jobdefinition_runtimeplatform.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package batch + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// JobDefinition_RuntimePlatform AWS CloudFormation Resource (AWS::Batch::JobDefinition.RuntimePlatform) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-runtimeplatform.html +type JobDefinition_RuntimePlatform struct { + + // CpuArchitecture AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-runtimeplatform.html#cfn-batch-jobdefinition-containerproperties-runtimeplatform-cpuarchitecture + CpuArchitecture *string `json:"CpuArchitecture,omitempty"` + + // OperatingSystemFamily AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-runtimeplatform.html#cfn-batch-jobdefinition-containerproperties-runtimeplatform-operatingsystemfamily + OperatingSystemFamily *string `json:"OperatingSystemFamily,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 *JobDefinition_RuntimePlatform) AWSCloudFormationType() string { + return "AWS::Batch::JobDefinition.RuntimePlatform" +} diff --git a/cloudformation/connect/aws-connect-queue.go b/cloudformation/connect/aws-connect-queue.go new file mode 100644 index 0000000000..e1d4ddba63 --- /dev/null +++ b/cloudformation/connect/aws-connect-queue.go @@ -0,0 +1,158 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// Queue AWS CloudFormation Resource (AWS::Connect::Queue) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html +type Queue struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-description + Description *string `json:"Description,omitempty"` + + // HoursOfOperationArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-hoursofoperationarn + HoursOfOperationArn string `json:"HoursOfOperationArn"` + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-instancearn + InstanceArn string `json:"InstanceArn"` + + // MaxContacts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-maxcontacts + MaxContacts *int `json:"MaxContacts,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-name + Name string `json:"Name"` + + // OutboundCallerConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-outboundcallerconfig + OutboundCallerConfig *Queue_OutboundCallerConfig `json:"OutboundCallerConfig,omitempty"` + + // QuickConnectArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-quickconnectarns + QuickConnectArns []string `json:"QuickConnectArns,omitempty"` + + // Status AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-status + Status *string `json:"Status,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-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 *Queue) AWSCloudFormationType() string { + return "AWS::Connect::Queue" +} + +// 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 Queue) MarshalJSON() ([]byte, error) { + type Properties Queue + 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 *Queue) UnmarshalJSON(b []byte) error { + type Properties Queue + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Queue(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/connect/aws-connect-queue_outboundcallerconfig.go b/cloudformation/connect/aws-connect-queue_outboundcallerconfig.go new file mode 100644 index 0000000000..fd9309b6bf --- /dev/null +++ b/cloudformation/connect/aws-connect-queue_outboundcallerconfig.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Queue_OutboundCallerConfig AWS CloudFormation Resource (AWS::Connect::Queue.OutboundCallerConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundcallerconfig.html +type Queue_OutboundCallerConfig struct { + + // OutboundCallerIdName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundcallerconfig.html#cfn-connect-queue-outboundcallerconfig-outboundcalleridname + OutboundCallerIdName *string `json:"OutboundCallerIdName,omitempty"` + + // OutboundCallerIdNumberArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundcallerconfig.html#cfn-connect-queue-outboundcallerconfig-outboundcalleridnumberarn + OutboundCallerIdNumberArn *string `json:"OutboundCallerIdNumberArn,omitempty"` + + // OutboundFlowArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundcallerconfig.html#cfn-connect-queue-outboundcallerconfig-outboundflowarn + OutboundFlowArn *string `json:"OutboundFlowArn,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 *Queue_OutboundCallerConfig) AWSCloudFormationType() string { + return "AWS::Connect::Queue.OutboundCallerConfig" +} diff --git a/cloudformation/connect/aws-connect-routingprofile.go b/cloudformation/connect/aws-connect-routingprofile.go new file mode 100644 index 0000000000..cf08c6753c --- /dev/null +++ b/cloudformation/connect/aws-connect-routingprofile.go @@ -0,0 +1,148 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// RoutingProfile AWS CloudFormation Resource (AWS::Connect::RoutingProfile) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html +type RoutingProfile struct { + + // DefaultOutboundQueueArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-defaultoutboundqueuearn + DefaultOutboundQueueArn string `json:"DefaultOutboundQueueArn"` + + // Description AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-description + Description string `json:"Description"` + + // InstanceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-instancearn + InstanceArn string `json:"InstanceArn"` + + // MediaConcurrencies AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-mediaconcurrencies + MediaConcurrencies []RoutingProfile_MediaConcurrency `json:"MediaConcurrencies"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-name + Name string `json:"Name"` + + // QueueConfigs AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-queueconfigs + QueueConfigs []RoutingProfile_RoutingProfileQueueConfig `json:"QueueConfigs,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-routingprofile.html#cfn-connect-routingprofile-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 *RoutingProfile) AWSCloudFormationType() string { + return "AWS::Connect::RoutingProfile" +} + +// 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 RoutingProfile) MarshalJSON() ([]byte, error) { + type Properties RoutingProfile + 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 *RoutingProfile) UnmarshalJSON(b []byte) error { + type Properties RoutingProfile + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = RoutingProfile(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/connect/aws-connect-routingprofile_crosschannelbehavior.go b/cloudformation/connect/aws-connect-routingprofile_crosschannelbehavior.go new file mode 100644 index 0000000000..cc67aa4979 --- /dev/null +++ b/cloudformation/connect/aws-connect-routingprofile_crosschannelbehavior.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// RoutingProfile_CrossChannelBehavior AWS CloudFormation Resource (AWS::Connect::RoutingProfile.CrossChannelBehavior) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-crosschannelbehavior.html +type RoutingProfile_CrossChannelBehavior struct { + + // BehaviorType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-crosschannelbehavior.html#cfn-connect-routingprofile-crosschannelbehavior-behaviortype + BehaviorType string `json:"BehaviorType"` + + // 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 *RoutingProfile_CrossChannelBehavior) AWSCloudFormationType() string { + return "AWS::Connect::RoutingProfile.CrossChannelBehavior" +} diff --git a/cloudformation/connect/aws-connect-routingprofile_mediaconcurrency.go b/cloudformation/connect/aws-connect-routingprofile_mediaconcurrency.go new file mode 100644 index 0000000000..a2385a1a72 --- /dev/null +++ b/cloudformation/connect/aws-connect-routingprofile_mediaconcurrency.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// RoutingProfile_MediaConcurrency AWS CloudFormation Resource (AWS::Connect::RoutingProfile.MediaConcurrency) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-mediaconcurrency.html +type RoutingProfile_MediaConcurrency struct { + + // Channel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-mediaconcurrency.html#cfn-connect-routingprofile-mediaconcurrency-channel + Channel string `json:"Channel"` + + // Concurrency AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-mediaconcurrency.html#cfn-connect-routingprofile-mediaconcurrency-concurrency + Concurrency int `json:"Concurrency"` + + // CrossChannelBehavior AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-mediaconcurrency.html#cfn-connect-routingprofile-mediaconcurrency-crosschannelbehavior + CrossChannelBehavior *RoutingProfile_CrossChannelBehavior `json:"CrossChannelBehavior,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 *RoutingProfile_MediaConcurrency) AWSCloudFormationType() string { + return "AWS::Connect::RoutingProfile.MediaConcurrency" +} diff --git a/cloudformation/connect/aws-connect-routingprofile_routingprofilequeueconfig.go b/cloudformation/connect/aws-connect-routingprofile_routingprofilequeueconfig.go new file mode 100644 index 0000000000..d78572d974 --- /dev/null +++ b/cloudformation/connect/aws-connect-routingprofile_routingprofilequeueconfig.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// RoutingProfile_RoutingProfileQueueConfig AWS CloudFormation Resource (AWS::Connect::RoutingProfile.RoutingProfileQueueConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeueconfig.html +type RoutingProfile_RoutingProfileQueueConfig struct { + + // Delay AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeueconfig.html#cfn-connect-routingprofile-routingprofilequeueconfig-delay + Delay int `json:"Delay"` + + // Priority AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeueconfig.html#cfn-connect-routingprofile-routingprofilequeueconfig-priority + Priority int `json:"Priority"` + + // QueueReference AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeueconfig.html#cfn-connect-routingprofile-routingprofilequeueconfig-queuereference + QueueReference *RoutingProfile_RoutingProfileQueueReference `json:"QueueReference"` + + // 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 *RoutingProfile_RoutingProfileQueueConfig) AWSCloudFormationType() string { + return "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" +} diff --git a/cloudformation/connect/aws-connect-routingprofile_routingprofilequeuereference.go b/cloudformation/connect/aws-connect-routingprofile_routingprofilequeuereference.go new file mode 100644 index 0000000000..bf73cf5072 --- /dev/null +++ b/cloudformation/connect/aws-connect-routingprofile_routingprofilequeuereference.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package connect + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// RoutingProfile_RoutingProfileQueueReference AWS CloudFormation Resource (AWS::Connect::RoutingProfile.RoutingProfileQueueReference) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeuereference.html +type RoutingProfile_RoutingProfileQueueReference struct { + + // Channel AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeuereference.html#cfn-connect-routingprofile-routingprofilequeuereference-channel + Channel string `json:"Channel"` + + // QueueArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-routingprofile-routingprofilequeuereference.html#cfn-connect-routingprofile-routingprofilequeuereference-queuearn + QueueArn string `json:"QueueArn"` + + // 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 *RoutingProfile_RoutingProfileQueueReference) AWSCloudFormationType() string { + return "AWS::Connect::RoutingProfile.RoutingProfileQueueReference" +} diff --git a/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go b/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go index d8df8e4fd0..5e98d89ca6 100644 --- a/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go +++ b/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go @@ -20,11 +20,6 @@ type TaskSet_LoadBalancer struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-containerport ContainerPort *int `json:"ContainerPort,omitempty"` - // LoadBalancerName AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-loadbalancername - LoadBalancerName *string `json:"LoadBalancerName,omitempty"` - // TargetGroupArn AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-targetgrouparn diff --git a/cloudformation/fsx/aws-fsx-volume_autocommitperiod.go b/cloudformation/fsx/aws-fsx-volume_autocommitperiod.go new file mode 100644 index 0000000000..e23949b847 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-volume_autocommitperiod.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Volume_AutocommitPeriod AWS CloudFormation Resource (AWS::FSx::Volume.AutocommitPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod.html +type Volume_AutocommitPeriod struct { + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod-type + Type string `json:"Type"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod-value + Value *int `json:"Value,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 *Volume_AutocommitPeriod) AWSCloudFormationType() string { + return "AWS::FSx::Volume.AutocommitPeriod" +} diff --git a/cloudformation/fsx/aws-fsx-volume_ontapconfiguration.go b/cloudformation/fsx/aws-fsx-volume_ontapconfiguration.go index aca9e22786..4287258bd6 100644 --- a/cloudformation/fsx/aws-fsx-volume_ontapconfiguration.go +++ b/cloudformation/fsx/aws-fsx-volume_ontapconfiguration.go @@ -35,6 +35,11 @@ type Volume_OntapConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration.html#cfn-fsx-volume-ontapconfiguration-sizeinmegabytes SizeInMegabytes string `json:"SizeInMegabytes"` + // SnaplockConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration + SnaplockConfiguration *Volume_SnaplockConfiguration `json:"SnaplockConfiguration,omitempty"` + // SnapshotPolicy AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration.html#cfn-fsx-volume-ontapconfiguration-snapshotpolicy diff --git a/cloudformation/fsx/aws-fsx-volume_retentionperiod.go b/cloudformation/fsx/aws-fsx-volume_retentionperiod.go new file mode 100644 index 0000000000..ed7e845bb3 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-volume_retentionperiod.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Volume_RetentionPeriod AWS CloudFormation Resource (AWS::FSx::Volume.RetentionPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-retentionperiod.html +type Volume_RetentionPeriod struct { + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-retentionperiod.html#cfn-fsx-volume-retentionperiod-type + Type string `json:"Type"` + + // Value AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-retentionperiod.html#cfn-fsx-volume-retentionperiod-value + Value *int `json:"Value,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 *Volume_RetentionPeriod) AWSCloudFormationType() string { + return "AWS::FSx::Volume.RetentionPeriod" +} diff --git a/cloudformation/fsx/aws-fsx-volume_snaplockconfiguration.go b/cloudformation/fsx/aws-fsx-volume_snaplockconfiguration.go new file mode 100644 index 0000000000..3492cf2834 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-volume_snaplockconfiguration.go @@ -0,0 +1,62 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Volume_SnaplockConfiguration AWS CloudFormation Resource (AWS::FSx::Volume.SnaplockConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html +type Volume_SnaplockConfiguration struct { + + // AuditLogVolume AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-auditlogvolume + AuditLogVolume *string `json:"AuditLogVolume,omitempty"` + + // AutocommitPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-autocommitperiod + AutocommitPeriod *Volume_AutocommitPeriod `json:"AutocommitPeriod,omitempty"` + + // PrivilegedDelete AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-privilegeddelete + PrivilegedDelete *string `json:"PrivilegedDelete,omitempty"` + + // RetentionPeriod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-retentionperiod + RetentionPeriod *Volume_SnaplockRetentionPeriod `json:"RetentionPeriod,omitempty"` + + // SnaplockType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-snaplocktype + SnaplockType string `json:"SnaplockType"` + + // VolumeAppendModeEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-ontapconfiguration-snaplockconfiguration.html#cfn-fsx-volume-ontapconfiguration-snaplockconfiguration-volumeappendmodeenabled + VolumeAppendModeEnabled *string `json:"VolumeAppendModeEnabled,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 *Volume_SnaplockConfiguration) AWSCloudFormationType() string { + return "AWS::FSx::Volume.SnaplockConfiguration" +} diff --git a/cloudformation/fsx/aws-fsx-volume_snaplockretentionperiod.go b/cloudformation/fsx/aws-fsx-volume_snaplockretentionperiod.go new file mode 100644 index 0000000000..81eb02d9e1 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-volume_snaplockretentionperiod.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Volume_SnaplockRetentionPeriod AWS CloudFormation Resource (AWS::FSx::Volume.SnaplockRetentionPeriod) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html +type Volume_SnaplockRetentionPeriod struct { + + // DefaultRetention AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-defaultretention + DefaultRetention *Volume_RetentionPeriod `json:"DefaultRetention"` + + // MaximumRetention AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-maximumretention + MaximumRetention *Volume_RetentionPeriod `json:"MaximumRetention"` + + // MinimumRetention AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-minimumretention + MinimumRetention *Volume_RetentionPeriod `json:"MinimumRetention"` + + // 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 *Volume_SnaplockRetentionPeriod) AWSCloudFormationType() string { + return "AWS::FSx::Volume.SnaplockRetentionPeriod" +} diff --git a/cloudformation/iam/aws-iam-grouppolicy.go b/cloudformation/iam/aws-iam-grouppolicy.go new file mode 100644 index 0000000000..5d994e0adb --- /dev/null +++ b/cloudformation/iam/aws-iam-grouppolicy.go @@ -0,0 +1,127 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iam + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// GroupPolicy AWS CloudFormation Resource (AWS::IAM::GroupPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html +type GroupPolicy struct { + + // GroupName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html#cfn-iam-grouppolicy-groupname + GroupName string `json:"GroupName"` + + // PolicyDocument AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html#cfn-iam-grouppolicy-policydocument + PolicyDocument interface{} `json:"PolicyDocument,omitempty"` + + // PolicyName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html#cfn-iam-grouppolicy-policyname + PolicyName string `json:"PolicyName"` + + // 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 *GroupPolicy) AWSCloudFormationType() string { + return "AWS::IAM::GroupPolicy" +} + +// 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 GroupPolicy) MarshalJSON() ([]byte, error) { + type Properties GroupPolicy + 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 *GroupPolicy) UnmarshalJSON(b []byte) error { + type Properties GroupPolicy + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = GroupPolicy(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iam/aws-iam-rolepolicy.go b/cloudformation/iam/aws-iam-rolepolicy.go new file mode 100644 index 0000000000..ecf0eab8f3 --- /dev/null +++ b/cloudformation/iam/aws-iam-rolepolicy.go @@ -0,0 +1,127 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iam + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// RolePolicy AWS CloudFormation Resource (AWS::IAM::RolePolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html +type RolePolicy struct { + + // PolicyDocument AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html#cfn-iam-rolepolicy-policydocument + PolicyDocument interface{} `json:"PolicyDocument,omitempty"` + + // PolicyName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html#cfn-iam-rolepolicy-policyname + PolicyName string `json:"PolicyName"` + + // RoleName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html#cfn-iam-rolepolicy-rolename + RoleName string `json:"RoleName"` + + // 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 *RolePolicy) AWSCloudFormationType() string { + return "AWS::IAM::RolePolicy" +} + +// 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 RolePolicy) MarshalJSON() ([]byte, error) { + type Properties RolePolicy + 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 *RolePolicy) UnmarshalJSON(b []byte) error { + type Properties RolePolicy + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = RolePolicy(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iam/aws-iam-userpolicy.go b/cloudformation/iam/aws-iam-userpolicy.go new file mode 100644 index 0000000000..1eb6f23de3 --- /dev/null +++ b/cloudformation/iam/aws-iam-userpolicy.go @@ -0,0 +1,127 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iam + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// UserPolicy AWS CloudFormation Resource (AWS::IAM::UserPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html +type UserPolicy struct { + + // PolicyDocument AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html#cfn-iam-userpolicy-policydocument + PolicyDocument interface{} `json:"PolicyDocument,omitempty"` + + // PolicyName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html#cfn-iam-userpolicy-policyname + PolicyName string `json:"PolicyName"` + + // UserName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html#cfn-iam-userpolicy-username + UserName string `json:"UserName"` + + // 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 *UserPolicy) AWSCloudFormationType() string { + return "AWS::IAM::UserPolicy" +} + +// 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 UserPolicy) MarshalJSON() ([]byte, error) { + type Properties UserPolicy + 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 *UserPolicy) UnmarshalJSON(b []byte) error { + type Properties UserPolicy + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = UserPolicy(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/logs/aws-logs-accountpolicy.go b/cloudformation/logs/aws-logs-accountpolicy.go new file mode 100644 index 0000000000..4cc80a481a --- /dev/null +++ b/cloudformation/logs/aws-logs-accountpolicy.go @@ -0,0 +1,132 @@ +// Code generated by "go generate". Please don't change this file directly. + +package logs + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// AccountPolicy AWS CloudFormation Resource (AWS::Logs::AccountPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html +type AccountPolicy struct { + + // PolicyDocument AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html#cfn-logs-accountpolicy-policydocument + PolicyDocument string `json:"PolicyDocument"` + + // PolicyName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html#cfn-logs-accountpolicy-policyname + PolicyName string `json:"PolicyName"` + + // PolicyType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html#cfn-logs-accountpolicy-policytype + PolicyType string `json:"PolicyType"` + + // Scope AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-accountpolicy.html#cfn-logs-accountpolicy-scope + Scope *string `json:"Scope,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 *AccountPolicy) AWSCloudFormationType() string { + return "AWS::Logs::AccountPolicy" +} + +// 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 AccountPolicy) MarshalJSON() ([]byte, error) { + type Properties AccountPolicy + 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 *AccountPolicy) UnmarshalJSON(b []byte) error { + type Properties AccountPolicy + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = AccountPolicy(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_encryptioncontractconfiguration.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_encryptioncontractconfiguration.go index 7e9d372460..757ba969fb 100644 --- a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_encryptioncontractconfiguration.go +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_encryptioncontractconfiguration.go @@ -10,6 +10,16 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-encryptioncontractconfiguration.html type PackagingConfiguration_EncryptionContractConfiguration struct { + // PresetSpeke20Audio AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-encryptioncontractconfiguration.html#cfn-mediapackage-packagingconfiguration-encryptioncontractconfiguration-presetspeke20audio + PresetSpeke20Audio string `json:"PresetSpeke20Audio"` + + // PresetSpeke20Video AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-encryptioncontractconfiguration.html#cfn-mediapackage-packagingconfiguration-encryptioncontractconfiguration-presetspeke20video + PresetSpeke20Video string `json:"PresetSpeke20Video"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/sagemaker/aws-sagemaker-endpoint_deploymentconfig.go b/cloudformation/sagemaker/aws-sagemaker-endpoint_deploymentconfig.go index 2d9f2dc82f..6a58c35e1d 100644 --- a/cloudformation/sagemaker/aws-sagemaker-endpoint_deploymentconfig.go +++ b/cloudformation/sagemaker/aws-sagemaker-endpoint_deploymentconfig.go @@ -16,9 +16,14 @@ type Endpoint_DeploymentConfig struct { AutoRollbackConfiguration *Endpoint_AutoRollbackConfig `json:"AutoRollbackConfiguration,omitempty"` // BlueGreenUpdatePolicy AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-deploymentconfig.html#cfn-sagemaker-endpoint-deploymentconfig-bluegreenupdatepolicy - BlueGreenUpdatePolicy *Endpoint_BlueGreenUpdatePolicy `json:"BlueGreenUpdatePolicy"` + BlueGreenUpdatePolicy *Endpoint_BlueGreenUpdatePolicy `json:"BlueGreenUpdatePolicy,omitempty"` + + // RollingUpdatePolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-deploymentconfig.html#cfn-sagemaker-endpoint-deploymentconfig-rollingupdatepolicy + RollingUpdatePolicy *Endpoint_RollingUpdatePolicy `json:"RollingUpdatePolicy,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/sagemaker/aws-sagemaker-endpoint_rollingupdatepolicy.go b/cloudformation/sagemaker/aws-sagemaker-endpoint_rollingupdatepolicy.go new file mode 100644 index 0000000000..6e7208ca29 --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-endpoint_rollingupdatepolicy.go @@ -0,0 +1,52 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sagemaker + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// Endpoint_RollingUpdatePolicy AWS CloudFormation Resource (AWS::SageMaker::Endpoint.RollingUpdatePolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-rollingupdatepolicy.html +type Endpoint_RollingUpdatePolicy struct { + + // MaximumBatchSize AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-rollingupdatepolicy.html#cfn-sagemaker-endpoint-rollingupdatepolicy-maximumbatchsize + MaximumBatchSize *Endpoint_CapacitySize `json:"MaximumBatchSize"` + + // MaximumExecutionTimeoutInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-rollingupdatepolicy.html#cfn-sagemaker-endpoint-rollingupdatepolicy-maximumexecutiontimeoutinseconds + MaximumExecutionTimeoutInSeconds *int `json:"MaximumExecutionTimeoutInSeconds,omitempty"` + + // RollbackMaximumBatchSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-rollingupdatepolicy.html#cfn-sagemaker-endpoint-rollingupdatepolicy-rollbackmaximumbatchsize + RollbackMaximumBatchSize *Endpoint_CapacitySize `json:"RollbackMaximumBatchSize,omitempty"` + + // WaitIntervalInSeconds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpoint-rollingupdatepolicy.html#cfn-sagemaker-endpoint-rollingupdatepolicy-waitintervalinseconds + WaitIntervalInSeconds int `json:"WaitIntervalInSeconds"` + + // 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 *Endpoint_RollingUpdatePolicy) AWSCloudFormationType() string { + return "AWS::SageMaker::Endpoint.RollingUpdatePolicy" +} diff --git a/cloudformation/sns/aws-sns-topicinlinepolicy.go b/cloudformation/sns/aws-sns-topicinlinepolicy.go new file mode 100644 index 0000000000..91173f58c8 --- /dev/null +++ b/cloudformation/sns/aws-sns-topicinlinepolicy.go @@ -0,0 +1,122 @@ +// Code generated by "go generate". Please don't change this file directly. + +package sns + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// TopicInlinePolicy AWS CloudFormation Resource (AWS::SNS::TopicInlinePolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html +type TopicInlinePolicy struct { + + // PolicyDocument AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html#cfn-sns-topicinlinepolicy-policydocument + PolicyDocument interface{} `json:"PolicyDocument"` + + // TopicArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topicinlinepolicy.html#cfn-sns-topicinlinepolicy-topicarn + TopicArn string `json:"TopicArn"` + + // 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 *TopicInlinePolicy) AWSCloudFormationType() string { + return "AWS::SNS::TopicInlinePolicy" +} + +// 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 TopicInlinePolicy) MarshalJSON() ([]byte, error) { + type Properties TopicInlinePolicy + 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 *TopicInlinePolicy) UnmarshalJSON(b []byte) error { + type Properties TopicInlinePolicy + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = TopicInlinePolicy(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/schema/cdk.go b/schema/cdk.go index cf6dd019fb..3bd93b402f 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -1238,6 +1238,12 @@ var CdkSchema = `{ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20401,6 +20407,9 @@ var CdkSchema = `{ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20883,6 +20892,18 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36696,6 +36717,118 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36843,7 +36976,7 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36878,44 +37011,49 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36934,156 +37072,314 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59396,9 +59692,6 @@ var CdkSchema = `{ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69911,6 +70204,21 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69963,6 +70271,9 @@ var CdkSchema = `{ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -70049,6 +70360,68 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79952,6 +80325,78 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80402,6 +80847,78 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80747,6 +81264,78 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105898,118 +106487,202 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -106028,16 +106701,7 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106072,28 +106736,27 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106112,7 +106775,7 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106147,13 +106810,7 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106161,13 +106818,14 @@ var CdkSchema = `{ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106186,7 +106844,7 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106221,22 +106879,29 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115614,7 +116279,18 @@ var CdkSchema = `{ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170072,6 +170748,75 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174242,10 +174987,32 @@ var CdkSchema = `{ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -194383,9 +195150,15 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -195265,6 +196038,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -195280,6 +196056,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -195292,6 +196071,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -195739,6 +196521,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -196501,6 +197286,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 6d50699866..9f45df6dc0 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -1233,6 +1233,12 @@ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20396,6 +20402,9 @@ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20878,6 +20887,18 @@ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36691,6 +36712,118 @@ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36838,7 +36971,7 @@ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36873,44 +37006,49 @@ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36929,156 +37067,314 @@ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59391,9 +59687,6 @@ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69906,6 +70199,21 @@ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69958,6 +70266,9 @@ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -70044,6 +70355,68 @@ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79947,6 +80320,78 @@ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80397,6 +80842,78 @@ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80742,6 +81259,78 @@ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105893,118 +106482,202 @@ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -106023,16 +106696,7 @@ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106067,28 +106731,27 @@ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106107,7 +106770,7 @@ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106142,13 +106805,7 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106156,13 +106813,14 @@ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106181,7 +106839,7 @@ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106216,22 +106874,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115609,7 +116274,18 @@ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170067,6 +170743,75 @@ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174237,10 +174982,32 @@ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -194378,9 +195145,15 @@ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -195260,6 +196033,9 @@ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -195275,6 +196051,9 @@ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -195287,6 +196066,9 @@ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -195734,6 +196516,9 @@ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -196496,6 +197281,9 @@ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 3ff3b48e81..30c499a933 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -1238,6 +1238,12 @@ var CloudformationSchema = `{ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20401,6 +20407,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20883,6 +20892,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36635,6 +36656,118 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36782,7 +36915,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36817,44 +36950,49 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36873,156 +37011,314 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59335,9 +59631,6 @@ var CloudformationSchema = `{ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69850,6 +70143,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69902,6 +70210,9 @@ var CloudformationSchema = `{ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -69988,6 +70299,68 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79891,6 +80264,78 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80341,6 +80786,78 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80686,6 +81203,78 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105837,118 +106426,202 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -105967,16 +106640,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106011,28 +106675,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106051,7 +106714,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106086,13 +106749,7 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106100,13 +106757,14 @@ var CloudformationSchema = `{ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106125,7 +106783,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106160,22 +106818,29 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115553,7 +116218,18 @@ var CloudformationSchema = `{ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170011,6 +170687,75 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174181,10 +174926,32 @@ var CloudformationSchema = `{ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -194319,9 +195086,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -195201,6 +195974,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -195216,6 +195992,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -195228,6 +196007,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -195675,6 +196457,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -196437,6 +197222,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 77e1e364da..540096ed74 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -1233,6 +1233,12 @@ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20396,6 +20402,9 @@ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20878,6 +20887,18 @@ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36630,6 +36651,118 @@ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36777,7 +36910,7 @@ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36812,44 +36945,49 @@ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36868,156 +37006,314 @@ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59330,9 +59626,6 @@ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69845,6 +70138,21 @@ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69897,6 +70205,9 @@ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -69983,6 +70294,68 @@ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79886,6 +80259,78 @@ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80336,6 +80781,78 @@ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80681,6 +81198,78 @@ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105832,118 +106421,202 @@ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -105962,16 +106635,7 @@ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106006,28 +106670,27 @@ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106046,7 +106709,7 @@ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106081,13 +106744,7 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106095,13 +106752,14 @@ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106120,7 +106778,7 @@ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106155,22 +106813,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115548,7 +116213,18 @@ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170006,6 +170682,75 @@ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174176,10 +174921,32 @@ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -194314,9 +195081,15 @@ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -195196,6 +195969,9 @@ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -195211,6 +195987,9 @@ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -195223,6 +196002,9 @@ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -195670,6 +196452,9 @@ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -196432,6 +197217,9 @@ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" }, diff --git a/schema/sam.go b/schema/sam.go index 12627825a0..f0216490b9 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -1238,6 +1238,12 @@ var SamSchema = `{ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20401,6 +20407,9 @@ var SamSchema = `{ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20883,6 +20892,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36635,6 +36656,118 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36782,7 +36915,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36817,44 +36950,49 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36873,156 +37011,314 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59335,9 +59631,6 @@ var SamSchema = `{ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69850,6 +70143,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69902,6 +70210,9 @@ var SamSchema = `{ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -69988,6 +70299,68 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79891,6 +80264,78 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80341,6 +80786,78 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80686,6 +81203,78 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105837,118 +106426,202 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -105967,16 +106640,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106011,28 +106675,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106051,7 +106714,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106086,13 +106749,7 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106100,13 +106757,14 @@ var SamSchema = `{ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106125,7 +106783,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106160,22 +106818,29 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115553,7 +116218,18 @@ var SamSchema = `{ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170011,6 +170687,75 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174181,10 +174926,32 @@ var SamSchema = `{ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -197326,9 +198093,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -198208,6 +198981,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -198223,6 +198999,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -198235,6 +199014,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -198682,6 +199464,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -199444,6 +200229,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 4d9c87b5a8..bcaca9046a 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -1233,6 +1233,12 @@ "Configuration": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" }, + "DataReplicationMode": { + "type": "string" + }, + "DataReplicationPrimaryBrokerArn": { + "type": "string" + }, "DeploymentMode": { "type": "string" }, @@ -20396,6 +20402,9 @@ }, "type": "array" }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RuntimePlatform" + }, "Secrets": { "items": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" @@ -20878,6 +20887,18 @@ }, "type": "object" }, + "AWS::Batch::JobDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Batch::JobDefinition.Secret": { "additionalProperties": false, "properties": { @@ -36630,6 +36651,118 @@ ], "type": "object" }, + "AWS::Connect::Queue": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "HoursOfOperationArn": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "MaxContacts": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutboundCallerConfig": { + "$ref": "#/definitions/AWS::Connect::Queue.OutboundCallerConfig" + }, + "QuickConnectArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HoursOfOperationArn", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Queue.OutboundCallerConfig": { + "additionalProperties": false, + "properties": { + "OutboundCallerIdName": { + "type": "string" + }, + "OutboundCallerIdNumberArn": { + "type": "string" + }, + "OutboundFlowArn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Connect::QuickConnect": { "additionalProperties": false, "properties": { @@ -36777,7 +36910,7 @@ ], "type": "object" }, - "AWS::Connect::Rule": { + "AWS::Connect::RoutingProfile": { "additionalProperties": false, "properties": { "Condition": { @@ -36812,44 +36945,49 @@ "Properties": { "additionalProperties": false, "properties": { - "Actions": { - "$ref": "#/definitions/AWS::Connect::Rule.Actions" + "DefaultOutboundQueueArn": { + "type": "string" }, - "Function": { + "Description": { "type": "string" }, "InstanceArn": { "type": "string" }, + "MediaConcurrencies": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.MediaConcurrency" + }, + "type": "array" + }, "Name": { "type": "string" }, - "PublishStatus": { - "type": "string" + "QueueConfigs": { + "items": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueConfig" + }, + "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "TriggerEventSource": { - "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" } }, "required": [ - "Actions", - "Function", + "DefaultOutboundQueueArn", + "Description", "InstanceArn", - "Name", - "PublishStatus", - "TriggerEventSource" + "MediaConcurrencies", + "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::Connect::Rule" + "AWS::Connect::RoutingProfile" ], "type": "string" }, @@ -36868,156 +37006,314 @@ ], "type": "object" }, - "AWS::Connect::Rule.Actions": { + "AWS::Connect::RoutingProfile.CrossChannelBehavior": { "additionalProperties": false, "properties": { - "AssignContactCategoryActions": { - "items": { - "type": "object" - }, - "type": "array" - }, - "EventBridgeActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" - }, - "type": "array" - }, - "SendNotificationActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" - }, - "type": "array" - }, - "TaskActions": { - "items": { - "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" - }, - "type": "array" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.EventBridgeAction": { - "additionalProperties": false, - "properties": { - "Name": { + "BehaviorType": { "type": "string" } }, "required": [ - "Name" + "BehaviorType" ], "type": "object" }, - "AWS::Connect::Rule.NotificationRecipientType": { - "additionalProperties": false, - "properties": { - "UserArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "UserTags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "AWS::Connect::Rule.Reference": { + "AWS::Connect::RoutingProfile.MediaConcurrency": { "additionalProperties": false, "properties": { - "Type": { + "Channel": { "type": "string" }, - "Value": { - "type": "string" - } - }, - "required": [ - "Type", - "Value" - ], - "type": "object" - }, - "AWS::Connect::Rule.RuleTriggerEventSource": { - "additionalProperties": false, - "properties": { - "EventSourceName": { - "type": "string" + "Concurrency": { + "type": "number" }, - "IntegrationAssociationArn": { - "type": "string" + "CrossChannelBehavior": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.CrossChannelBehavior" } }, "required": [ - "EventSourceName" + "Channel", + "Concurrency" ], "type": "object" }, - "AWS::Connect::Rule.SendNotificationAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueConfig": { "additionalProperties": false, "properties": { - "Content": { - "type": "string" - }, - "ContentType": { - "type": "string" - }, - "DeliveryMethod": { - "type": "string" + "Delay": { + "type": "number" }, - "Recipient": { - "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + "Priority": { + "type": "number" }, - "Subject": { - "type": "string" + "QueueReference": { + "$ref": "#/definitions/AWS::Connect::RoutingProfile.RoutingProfileQueueReference" } }, "required": [ - "Content", - "ContentType", - "DeliveryMethod", - "Recipient" + "Delay", + "Priority", + "QueueReference" ], "type": "object" }, - "AWS::Connect::Rule.TaskAction": { + "AWS::Connect::RoutingProfile.RoutingProfileQueueReference": { "additionalProperties": false, "properties": { - "ContactFlowArn": { - "type": "string" - }, - "Description": { + "Channel": { "type": "string" }, - "Name": { + "QueueArn": { "type": "string" - }, - "References": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "$ref": "#/definitions/AWS::Connect::Rule.Reference" - } - }, - "type": "object" } }, "required": [ - "ContactFlowArn", - "Name" + "Channel", + "QueueArn" ], "type": "object" }, - "AWS::Connect::SecurityKey": { + "AWS::Connect::Rule": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::SecurityKey": { "additionalProperties": false, "properties": { "Condition": { @@ -59330,9 +59626,6 @@ "ContainerPort": { "type": "number" }, - "LoadBalancerName": { - "type": "string" - }, "TargetGroupArn": { "type": "string" } @@ -69845,6 +70138,21 @@ ], "type": "object" }, + "AWS::FSx::Volume.AutocommitPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, "AWS::FSx::Volume.ClientConfigurations": { "additionalProperties": false, "properties": { @@ -69897,6 +70205,9 @@ "SizeInMegabytes": { "type": "string" }, + "SnaplockConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockConfiguration" + }, "SnapshotPolicy": { "type": "string" }, @@ -69983,6 +70294,68 @@ ], "type": "object" }, + "AWS::FSx::Volume.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogVolume": { + "type": "string" + }, + "AutocommitPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.AutocommitPeriod" + }, + "PrivilegedDelete": { + "type": "string" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::FSx::Volume.SnaplockRetentionPeriod" + }, + "SnaplockType": { + "type": "string" + }, + "VolumeAppendModeEnabled": { + "type": "string" + } + }, + "required": [ + "SnaplockType" + ], + "type": "object" + }, + "AWS::FSx::Volume.SnaplockRetentionPeriod": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MaximumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + }, + "MinimumRetention": { + "$ref": "#/definitions/AWS::FSx::Volume.RetentionPeriod" + } + }, + "required": [ + "DefaultRetention", + "MaximumRetention", + "MinimumRetention" + ], + "type": "object" + }, "AWS::FSx::Volume.TieringPolicy": { "additionalProperties": false, "properties": { @@ -79886,6 +80259,78 @@ ], "type": "object" }, + "AWS::IAM::GroupPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "GroupName", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::GroupPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::InstanceProfile": { "additionalProperties": false, "properties": { @@ -80336,6 +80781,78 @@ ], "type": "object" }, + "AWS::IAM::RolePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "RoleName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "RoleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::RolePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::SAMLProvider": { "additionalProperties": false, "properties": { @@ -80681,6 +81198,78 @@ ], "type": "object" }, + "AWS::IAM::UserPolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::IAM::UserToGroupAddition": { "additionalProperties": false, "properties": { @@ -105832,118 +106421,202 @@ "Properties": { "additionalProperties": false, "properties": { - "Configuration": { - "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" - }, - "Description": { - "type": "string" - }, - "MapName": { - "type": "string" - }, - "PricingPlan": { - "type": "string" - } - }, - "required": [ - "Configuration", - "MapName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::Location::Map" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::Location::Map.MapConfiguration": { - "additionalProperties": false, - "properties": { - "Style": { - "type": "string" - } - }, - "required": [ - "Style" - ], - "type": "object" - }, - "AWS::Location::PlaceIndex": { - "additionalProperties": false, - "properties": { - "Condition": { - "type": "string" - }, - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CalculatorName": { "type": "string" }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { "DataSource": { "type": "string" }, - "DataSourceConfiguration": { - "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" - }, "Description": { "type": "string" }, - "IndexName": { - "type": "string" - }, "PricingPlan": { "type": "string" } }, "required": [ - "DataSource", - "IndexName" + "CalculatorName", + "DataSource" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::PlaceIndex" + "AWS::Location::RouteCalculator" ], "type": "string" }, @@ -105962,16 +106635,7 @@ ], "type": "object" }, - "AWS::Location::PlaceIndex.DataSourceConfiguration": { - "additionalProperties": false, - "properties": { - "IntendedUse": { - "type": "string" - } - }, - "type": "object" - }, - "AWS::Location::RouteCalculator": { + "AWS::Location::Tracker": { "additionalProperties": false, "properties": { "Condition": { @@ -106006,28 +106670,27 @@ "Properties": { "additionalProperties": false, "properties": { - "CalculatorName": { + "Description": { "type": "string" }, - "DataSource": { + "KmsKeyId": { "type": "string" }, - "Description": { + "PositionFiltering": { "type": "string" }, - "PricingPlan": { + "TrackerName": { "type": "string" } }, "required": [ - "CalculatorName", - "DataSource" + "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::RouteCalculator" + "AWS::Location::Tracker" ], "type": "string" }, @@ -106046,7 +106709,7 @@ ], "type": "object" }, - "AWS::Location::Tracker": { + "AWS::Location::TrackerConsumer": { "additionalProperties": false, "properties": { "Condition": { @@ -106081,13 +106744,7 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { - "type": "string" - }, - "KmsKeyId": { - "type": "string" - }, - "PositionFiltering": { + "ConsumerArn": { "type": "string" }, "TrackerName": { @@ -106095,13 +106752,14 @@ } }, "required": [ + "ConsumerArn", "TrackerName" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::Tracker" + "AWS::Location::TrackerConsumer" ], "type": "string" }, @@ -106120,7 +106778,7 @@ ], "type": "object" }, - "AWS::Location::TrackerConsumer": { + "AWS::Logs::AccountPolicy": { "additionalProperties": false, "properties": { "Condition": { @@ -106155,22 +106813,29 @@ "Properties": { "additionalProperties": false, "properties": { - "ConsumerArn": { + "PolicyDocument": { "type": "string" }, - "TrackerName": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "Scope": { "type": "string" } }, "required": [ - "ConsumerArn", - "TrackerName" + "PolicyDocument", + "PolicyName", + "PolicyType" ], "type": "object" }, "Type": { "enum": [ - "AWS::Location::TrackerConsumer" + "AWS::Logs::AccountPolicy" ], "type": "string" }, @@ -115548,7 +116213,18 @@ }, "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": {}, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], "type": "object" }, "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { @@ -170006,6 +170682,75 @@ ], "type": "object" }, + "AWS::SNS::TopicInlinePolicy": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicInlinePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::SNS::TopicPolicy": { "additionalProperties": false, "properties": { @@ -174176,10 +174921,32 @@ }, "BlueGreenUpdatePolicy": { "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + }, + "RollingUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.RollingUpdatePolicy" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint.RollingUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "RollbackMaximumBatchSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "WaitIntervalInSeconds": { + "type": "number" } }, "required": [ - "BlueGreenUpdatePolicy" + "MaximumBatchSize", + "WaitIntervalInSeconds" ], "type": "object" }, @@ -197321,9 +198088,15 @@ { "$ref": "#/definitions/AWS::Connect::Prompt" }, + { + "$ref": "#/definitions/AWS::Connect::Queue" + }, { "$ref": "#/definitions/AWS::Connect::QuickConnect" }, + { + "$ref": "#/definitions/AWS::Connect::RoutingProfile" + }, { "$ref": "#/definitions/AWS::Connect::Rule" }, @@ -198203,6 +198976,9 @@ { "$ref": "#/definitions/AWS::IAM::Group" }, + { + "$ref": "#/definitions/AWS::IAM::GroupPolicy" + }, { "$ref": "#/definitions/AWS::IAM::InstanceProfile" }, @@ -198218,6 +198994,9 @@ { "$ref": "#/definitions/AWS::IAM::Role" }, + { + "$ref": "#/definitions/AWS::IAM::RolePolicy" + }, { "$ref": "#/definitions/AWS::IAM::SAMLProvider" }, @@ -198230,6 +199009,9 @@ { "$ref": "#/definitions/AWS::IAM::User" }, + { + "$ref": "#/definitions/AWS::IAM::UserPolicy" + }, { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, @@ -198677,6 +199459,9 @@ { "$ref": "#/definitions/AWS::Location::TrackerConsumer" }, + { + "$ref": "#/definitions/AWS::Logs::AccountPolicy" + }, { "$ref": "#/definitions/AWS::Logs::Destination" }, @@ -199439,6 +200224,9 @@ { "$ref": "#/definitions/AWS::SNS::Topic" }, + { + "$ref": "#/definitions/AWS::SNS::TopicInlinePolicy" + }, { "$ref": "#/definitions/AWS::SNS::TopicPolicy" },