diff --git a/cloudformation/all.go b/cloudformation/all.go index aeeb62be04..e979c4c2a3 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -92,6 +92,7 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/managedblockchain" "github.com/awslabs/goformation/v4/cloudformation/mediaconvert" "github.com/awslabs/goformation/v4/cloudformation/medialive" + "github.com/awslabs/goformation/v4/cloudformation/mediapackage" "github.com/awslabs/goformation/v4/cloudformation/mediastore" "github.com/awslabs/goformation/v4/cloudformation/msk" "github.com/awslabs/goformation/v4/cloudformation/neptune" @@ -539,6 +540,11 @@ func AllResources() map[string]Resource { "AWS::MediaLive::Channel": &medialive.Channel{}, "AWS::MediaLive::Input": &medialive.Input{}, "AWS::MediaLive::InputSecurityGroup": &medialive.InputSecurityGroup{}, + "AWS::MediaPackage::Asset": &mediapackage.Asset{}, + "AWS::MediaPackage::Channel": &mediapackage.Channel{}, + "AWS::MediaPackage::OriginEndpoint": &mediapackage.OriginEndpoint{}, + "AWS::MediaPackage::PackagingConfiguration": &mediapackage.PackagingConfiguration{}, + "AWS::MediaPackage::PackagingGroup": &mediapackage.PackagingGroup{}, "AWS::MediaStore::Container": &mediastore.Container{}, "AWS::Neptune::DBCluster": &neptune.DBCluster{}, "AWS::Neptune::DBClusterParameterGroup": &neptune.DBClusterParameterGroup{}, @@ -10436,6 +10442,126 @@ func (t *Template) GetMediaLiveInputSecurityGroupWithName(name string) (*mediali return nil, fmt.Errorf("resource %q of type medialive.InputSecurityGroup not found", name) } +// GetAllMediaPackageAssetResources retrieves all mediapackage.Asset items from an AWS CloudFormation template +func (t *Template) GetAllMediaPackageAssetResources() map[string]*mediapackage.Asset { + results := map[string]*mediapackage.Asset{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediapackage.Asset: + results[name] = resource + } + } + return results +} + +// GetMediaPackageAssetWithName retrieves all mediapackage.Asset items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaPackageAssetWithName(name string) (*mediapackage.Asset, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediapackage.Asset: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediapackage.Asset not found", name) +} + +// GetAllMediaPackageChannelResources retrieves all mediapackage.Channel items from an AWS CloudFormation template +func (t *Template) GetAllMediaPackageChannelResources() map[string]*mediapackage.Channel { + results := map[string]*mediapackage.Channel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediapackage.Channel: + results[name] = resource + } + } + return results +} + +// GetMediaPackageChannelWithName retrieves all mediapackage.Channel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaPackageChannelWithName(name string) (*mediapackage.Channel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediapackage.Channel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediapackage.Channel not found", name) +} + +// GetAllMediaPackageOriginEndpointResources retrieves all mediapackage.OriginEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllMediaPackageOriginEndpointResources() map[string]*mediapackage.OriginEndpoint { + results := map[string]*mediapackage.OriginEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediapackage.OriginEndpoint: + results[name] = resource + } + } + return results +} + +// GetMediaPackageOriginEndpointWithName retrieves all mediapackage.OriginEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaPackageOriginEndpointWithName(name string) (*mediapackage.OriginEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediapackage.OriginEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediapackage.OriginEndpoint not found", name) +} + +// GetAllMediaPackagePackagingConfigurationResources retrieves all mediapackage.PackagingConfiguration items from an AWS CloudFormation template +func (t *Template) GetAllMediaPackagePackagingConfigurationResources() map[string]*mediapackage.PackagingConfiguration { + results := map[string]*mediapackage.PackagingConfiguration{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediapackage.PackagingConfiguration: + results[name] = resource + } + } + return results +} + +// GetMediaPackagePackagingConfigurationWithName retrieves all mediapackage.PackagingConfiguration items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaPackagePackagingConfigurationWithName(name string) (*mediapackage.PackagingConfiguration, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediapackage.PackagingConfiguration: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediapackage.PackagingConfiguration not found", name) +} + +// GetAllMediaPackagePackagingGroupResources retrieves all mediapackage.PackagingGroup items from an AWS CloudFormation template +func (t *Template) GetAllMediaPackagePackagingGroupResources() map[string]*mediapackage.PackagingGroup { + results := map[string]*mediapackage.PackagingGroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediapackage.PackagingGroup: + results[name] = resource + } + } + return results +} + +// GetMediaPackagePackagingGroupWithName retrieves all mediapackage.PackagingGroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaPackagePackagingGroupWithName(name string) (*mediapackage.PackagingGroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediapackage.PackagingGroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediapackage.PackagingGroup not found", name) +} + // GetAllMediaStoreContainerResources retrieves all mediastore.Container items from an AWS CloudFormation template func (t *Template) GetAllMediaStoreContainerResources() map[string]*mediastore.Container { results := map[string]*mediastore.Container{} diff --git a/cloudformation/amazonmq/aws-amazonmq-broker.go b/cloudformation/amazonmq/aws-amazonmq-broker.go index 015c8619b0..eab54b3fe6 100644 --- a/cloudformation/amazonmq/aws-amazonmq-broker.go +++ b/cloudformation/amazonmq/aws-amazonmq-broker.go @@ -57,11 +57,6 @@ type Broker struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-hostinstancetype HostInstanceType string `json:"HostInstanceType,omitempty"` - // LdapMetadata AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapmetadata - LdapMetadata *Broker_LdapMetadata `json:"LdapMetadata,omitempty"` - // LdapServerMetadata AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapservermetadata diff --git a/cloudformation/appsync/aws-appsync-apikey.go b/cloudformation/appsync/aws-appsync-apikey.go index b01cac4cc1..41e21a67ac 100644 --- a/cloudformation/appsync/aws-appsync-apikey.go +++ b/cloudformation/appsync/aws-appsync-apikey.go @@ -17,6 +17,11 @@ type ApiKey struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid ApiId string `json:"ApiId,omitempty"` + // ApiKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid + ApiKeyId string `json:"ApiKeyId,omitempty"` + // Description AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description diff --git a/cloudformation/appsync/aws-appsync-functionconfiguration.go b/cloudformation/appsync/aws-appsync-functionconfiguration.go index e4383610cc..39f3d0836f 100644 --- a/cloudformation/appsync/aws-appsync-functionconfiguration.go +++ b/cloudformation/appsync/aws-appsync-functionconfiguration.go @@ -57,6 +57,11 @@ type FunctionConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-responsemappingtemplates3location ResponseMappingTemplateS3Location string `json:"ResponseMappingTemplateS3Location,omitempty"` + // SyncConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig + SyncConfig *FunctionConfiguration_SyncConfig `json:"SyncConfig,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go b/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go new file mode 100644 index 0000000000..d682787c8f --- /dev/null +++ b/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go @@ -0,0 +1,35 @@ +package appsync + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FunctionConfiguration_LambdaConflictHandlerConfig AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html +type FunctionConfiguration_LambdaConflictHandlerConfig struct { + + // LambdaConflictHandlerArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html#cfn-appsync-functionconfiguration-lambdaconflicthandlerconfig-lambdaconflicthandlerarn + LambdaConflictHandlerArn string `json:"LambdaConflictHandlerArn,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 *FunctionConfiguration_LambdaConflictHandlerConfig) AWSCloudFormationType() string { + return "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" +} diff --git a/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go b/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go new file mode 100644 index 0000000000..b9674b9220 --- /dev/null +++ b/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go @@ -0,0 +1,45 @@ +package appsync + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// FunctionConfiguration_SyncConfig AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration.SyncConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html +type FunctionConfiguration_SyncConfig struct { + + // ConflictDetection AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflictdetection + ConflictDetection string `json:"ConflictDetection,omitempty"` + + // ConflictHandler AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflicthandler + ConflictHandler string `json:"ConflictHandler,omitempty"` + + // LambdaConflictHandlerConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-lambdaconflicthandlerconfig + LambdaConflictHandlerConfig *FunctionConfiguration_LambdaConflictHandlerConfig `json:"LambdaConflictHandlerConfig,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 *FunctionConfiguration_SyncConfig) AWSCloudFormationType() string { + return "AWS::AppSync::FunctionConfiguration.SyncConfig" +} diff --git a/cloudformation/athena/aws-athena-namedquery.go b/cloudformation/athena/aws-athena-namedquery.go index cbd9e558c1..b227060486 100644 --- a/cloudformation/athena/aws-athena-namedquery.go +++ b/cloudformation/athena/aws-athena-namedquery.go @@ -32,6 +32,11 @@ type NamedQuery struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-querystring QueryString string `json:"QueryString,omitempty"` + // WorkGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-workgroup + WorkGroup string `json:"WorkGroup,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go index 4f389adab7..ad175182a6 100644 --- a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go @@ -22,6 +22,11 @@ type AutoScalingGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-availabilityzones AvailabilityZones []string `json:"AvailabilityZones,omitempty"` + // CapacityRebalance AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-capacityrebalance + CapacityRebalance bool `json:"CapacityRebalance,omitempty"` + // Cooldown AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-cooldown diff --git a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go index e0e3d36a6a..987d4bb746 100644 --- a/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go +++ b/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go @@ -13,6 +13,11 @@ type AutoScalingGroup_LaunchTemplateOverrides struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-instancetype InstanceType string `json:"InstanceType,omitempty"` + // LaunchTemplateSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-launchtemplatespecification + LaunchTemplateSpecification *AutoScalingGroup_LaunchTemplateSpecification `json:"LaunchTemplateSpecification,omitempty"` + // WeightedCapacity AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-weightedcapacity diff --git a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go index 97775cf9fd..a9929c9348 100644 --- a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go @@ -77,6 +77,11 @@ type LaunchConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-launchconfigurationname LaunchConfigurationName string `json:"LaunchConfigurationName,omitempty"` + // MetadataOptions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-metadataoptions + MetadataOptions *LaunchConfiguration_MetadataOption `json:"MetadataOptions,omitempty"` + // PlacementTenancy AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-placementtenancy diff --git a/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go new file mode 100644 index 0000000000..8df455e7fa --- /dev/null +++ b/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go @@ -0,0 +1,45 @@ +package autoscaling + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// LaunchConfiguration_MetadataOption AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.MetadataOption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html +type LaunchConfiguration_MetadataOption struct { + + // HttpEndpoint AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpendpoint + HttpEndpoint string `json:"HttpEndpoint,omitempty"` + + // HttpPutResponseHopLimit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpputresponsehoplimit + HttpPutResponseHopLimit int `json:"HttpPutResponseHopLimit,omitempty"` + + // HttpTokens AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httptokens + HttpTokens string `json:"HttpTokens,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 *LaunchConfiguration_MetadataOption) AWSCloudFormationType() string { + return "AWS::AutoScaling::LaunchConfiguration.MetadataOption" +} diff --git a/cloudformation/batch/aws-batch-computeenvironment.go b/cloudformation/batch/aws-batch-computeenvironment.go index 34d1fda226..71ee0a2d12 100644 --- a/cloudformation/batch/aws-batch-computeenvironment.go +++ b/cloudformation/batch/aws-batch-computeenvironment.go @@ -32,6 +32,11 @@ type ComputeEnvironment struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-state State string `json:"State,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-tags + Tags interface{} `json:"Tags,omitempty"` + // Type AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type diff --git a/cloudformation/batch/aws-batch-jobdefinition.go b/cloudformation/batch/aws-batch-jobdefinition.go index 82d22af29a..82f41c3f42 100644 --- a/cloudformation/batch/aws-batch-jobdefinition.go +++ b/cloudformation/batch/aws-batch-jobdefinition.go @@ -37,6 +37,11 @@ type JobDefinition struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-retrystrategy RetryStrategy *JobDefinition_RetryStrategy `json:"RetryStrategy,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-tags + Tags interface{} `json:"Tags,omitempty"` + // Timeout AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-timeout diff --git a/cloudformation/batch/aws-batch-jobqueue.go b/cloudformation/batch/aws-batch-jobqueue.go index e0413c85c1..9635519a15 100644 --- a/cloudformation/batch/aws-batch-jobqueue.go +++ b/cloudformation/batch/aws-batch-jobqueue.go @@ -32,6 +32,11 @@ type JobQueue struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-state State string `json:"State,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-tags + Tags interface{} `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go b/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go index 330de03ade..c22e94f43d 100644 --- a/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go @@ -43,6 +43,11 @@ type Distribution_Origin struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originpath OriginPath string `json:"OriginPath,omitempty"` + // OriginShield AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originshield + OriginShield *Distribution_OriginShield `json:"OriginShield,omitempty"` + // S3OriginConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig diff --git a/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go b/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go new file mode 100644 index 0000000000..701bc0eb20 --- /dev/null +++ b/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go @@ -0,0 +1,40 @@ +package cloudfront + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Distribution_OriginShield AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginShield) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html +type Distribution_OriginShield struct { + + // Enabled AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-enabled + Enabled bool `json:"Enabled"` + + // OriginShieldRegion AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-originshieldregion + OriginShieldRegion string `json:"OriginShieldRegion,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 *Distribution_OriginShield) AWSCloudFormationType() string { + return "AWS::CloudFront::Distribution.OriginShield" +} diff --git a/cloudformation/ec2/aws-ec2-route.go b/cloudformation/ec2/aws-ec2-route.go index d7c9d43eee..6862aff5b2 100644 --- a/cloudformation/ec2/aws-ec2-route.go +++ b/cloudformation/ec2/aws-ec2-route.go @@ -12,6 +12,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html type Route struct { + // CarrierGatewayId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-carriergatewayid + CarrierGatewayId string `json:"CarrierGatewayId,omitempty"` + // DestinationCidrBlock AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock @@ -37,6 +42,11 @@ type Route struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-instanceid InstanceId string `json:"InstanceId,omitempty"` + // LocalGatewayId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-localgatewayid + LocalGatewayId string `json:"LocalGatewayId,omitempty"` + // NatGatewayId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid @@ -57,6 +67,11 @@ type Route struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-transitgatewayid TransitGatewayId string `json:"TransitGatewayId,omitempty"` + // VpcEndpointId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcendpointid + VpcEndpointId string `json:"VpcEndpointId,omitempty"` + // VpcPeeringConnectionId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid diff --git a/cloudformation/ec2/aws-ec2-subnet.go b/cloudformation/ec2/aws-ec2-subnet.go index 287f1ac5de..c6f6c64dfd 100644 --- a/cloudformation/ec2/aws-ec2-subnet.go +++ b/cloudformation/ec2/aws-ec2-subnet.go @@ -38,6 +38,11 @@ type Subnet struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-mappubliciponlaunch MapPublicIpOnLaunch bool `json:"MapPublicIpOnLaunch,omitempty"` + // OutpostArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-outpostarn + OutpostArn string `json:"OutpostArn,omitempty"` + // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-tags diff --git a/cloudformation/elasticache/aws-elasticache-replicationgroup.go b/cloudformation/elasticache/aws-elasticache-replicationgroup.go index b248d37ebe..e4bc0c4a49 100644 --- a/cloudformation/elasticache/aws-elasticache-replicationgroup.go +++ b/cloudformation/elasticache/aws-elasticache-replicationgroup.go @@ -63,6 +63,11 @@ type ReplicationGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engineversion EngineVersion string `json:"EngineVersion,omitempty"` + // GlobalReplicationGroupId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-globalreplicationgroupid + GlobalReplicationGroupId string `json:"GlobalReplicationGroupId,omitempty"` + // KmsKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-kmskeyid diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go index f43bf028e3..ef0b68b0b1 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go @@ -33,12 +33,12 @@ type Listener struct { LoadBalancerArn string `json:"LoadBalancerArn,omitempty"` // Port AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-port - Port int `json:"Port"` + Port int `json:"Port,omitempty"` // Protocol AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-protocol Protocol string `json:"Protocol,omitempty"` diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go index 84901f5fab..6c87f0c345 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go @@ -13,6 +13,11 @@ type LoadBalancer_SubnetMapping struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-allocationid AllocationId string `json:"AllocationId,omitempty"` + // IPv6Address AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-ipv6address + IPv6Address string `json:"IPv6Address,omitempty"` + // PrivateIPv4Address AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-privateipv4address diff --git a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go index 31ca47e891..58aa3062d5 100644 --- a/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go +++ b/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go @@ -9,7 +9,7 @@ import ( type TargetGroup_Matcher struct { // HttpCode AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html#cfn-elasticloadbalancingv2-targetgroup-matcher-httpcode HttpCode string `json:"HttpCode,omitempty"` diff --git a/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go b/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go index 4a553a54e6..52ab1a80c4 100644 --- a/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go +++ b/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go @@ -33,6 +33,21 @@ type Domain_ElasticsearchClusterConfig struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instnacetype InstanceType string `json:"InstanceType,omitempty"` + // WarmCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmcount + WarmCount int `json:"WarmCount,omitempty"` + + // WarmEnabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmenabled + WarmEnabled bool `json:"WarmEnabled,omitempty"` + + // WarmType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmtype + WarmType string `json:"WarmType,omitempty"` + // ZoneAwarenessConfig AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-zoneawarenessconfig diff --git a/cloudformation/emr/aws-emr-cluster.go b/cloudformation/emr/aws-emr-cluster.go index 428d98ebbf..9f6db4a8d1 100644 --- a/cloudformation/emr/aws-emr-cluster.go +++ b/cloudformation/emr/aws-emr-cluster.go @@ -63,11 +63,21 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-kerberosattributes KerberosAttributes *Cluster_KerberosAttributes `json:"KerberosAttributes,omitempty"` + // LogEncryptionKmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-logencryptionkmskeyid + LogEncryptionKmsKeyId string `json:"LogEncryptionKmsKeyId,omitempty"` + // LogUri AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-loguri LogUri string `json:"LogUri,omitempty"` + // ManagedScalingPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-managedscalingpolicy + ManagedScalingPolicy *Cluster_ManagedScalingPolicy `json:"ManagedScalingPolicy,omitempty"` + // Name AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-name @@ -93,6 +103,11 @@ type Cluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-servicerole ServiceRole string `json:"ServiceRole,omitempty"` + // StepConcurrencyLevel AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-stepconcurrencylevel + StepConcurrencyLevel int `json:"StepConcurrencyLevel,omitempty"` + // Steps AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-steps diff --git a/cloudformation/emr/aws-emr-cluster_computelimits.go b/cloudformation/emr/aws-emr-cluster_computelimits.go new file mode 100644 index 0000000000..e1d5f1c543 --- /dev/null +++ b/cloudformation/emr/aws-emr-cluster_computelimits.go @@ -0,0 +1,55 @@ +package emr + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_ComputeLimits AWS CloudFormation Resource (AWS::EMR::Cluster.ComputeLimits) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html +type Cluster_ComputeLimits struct { + + // MaximumCapacityUnits AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcapacityunits + MaximumCapacityUnits int `json:"MaximumCapacityUnits"` + + // MaximumCoreCapacityUnits AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcorecapacityunits + MaximumCoreCapacityUnits int `json:"MaximumCoreCapacityUnits,omitempty"` + + // MaximumOnDemandCapacityUnits AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumondemandcapacityunits + MaximumOnDemandCapacityUnits int `json:"MaximumOnDemandCapacityUnits,omitempty"` + + // MinimumCapacityUnits AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-minimumcapacityunits + MinimumCapacityUnits int `json:"MinimumCapacityUnits"` + + // UnitType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-unittype + UnitType string `json:"UnitType,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_ComputeLimits) AWSCloudFormationType() string { + return "AWS::EMR::Cluster.ComputeLimits" +} diff --git a/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go b/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go index 5f94e7187f..2a7cb3d32e 100644 --- a/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go +++ b/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go @@ -8,8 +8,13 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html type Cluster_InstanceFleetProvisioningSpecifications struct { + // OnDemandSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-ondemandspecification + OnDemandSpecification *Cluster_OnDemandProvisioningSpecification `json:"OnDemandSpecification,omitempty"` + // SpotSpecification AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-spotspecification SpotSpecification *Cluster_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"` diff --git a/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go b/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go new file mode 100644 index 0000000000..1714663fd6 --- /dev/null +++ b/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go @@ -0,0 +1,35 @@ +package emr + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_ManagedScalingPolicy AWS CloudFormation Resource (AWS::EMR::Cluster.ManagedScalingPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html +type Cluster_ManagedScalingPolicy struct { + + // ComputeLimits AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html#cfn-elasticmapreduce-cluster-managedscalingpolicy-computelimits + ComputeLimits *Cluster_ComputeLimits `json:"ComputeLimits,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_ManagedScalingPolicy) AWSCloudFormationType() string { + return "AWS::EMR::Cluster.ManagedScalingPolicy" +} diff --git a/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go b/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go new file mode 100644 index 0000000000..dcec9ed026 --- /dev/null +++ b/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go @@ -0,0 +1,35 @@ +package emr + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Cluster_OnDemandProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.OnDemandProvisioningSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html +type Cluster_OnDemandProvisioningSpecification struct { + + // AllocationStrategy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html#cfn-elasticmapreduce-cluster-ondemandprovisioningspecification-allocationstrategy + AllocationStrategy string `json:"AllocationStrategy,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Cluster_OnDemandProvisioningSpecification) AWSCloudFormationType() string { + return "AWS::EMR::Cluster.OnDemandProvisioningSpecification" +} diff --git a/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go b/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go index ae4139a24f..f373285b9d 100644 --- a/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go +++ b/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html type Cluster_SpotProvisioningSpecification struct { + // AllocationStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-allocationstrategy + AllocationStrategy string `json:"AllocationStrategy,omitempty"` + // BlockDurationMinutes AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-blockdurationminutes diff --git a/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go b/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go index 4886bd2411..ceb925809f 100644 --- a/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go +++ b/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go @@ -8,8 +8,13 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html type InstanceFleetConfig_InstanceFleetProvisioningSpecifications struct { + // OnDemandSpecification AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-ondemandspecification + OnDemandSpecification *InstanceFleetConfig_OnDemandProvisioningSpecification `json:"OnDemandSpecification,omitempty"` + // SpotSpecification AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-spotspecification SpotSpecification *InstanceFleetConfig_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"` diff --git a/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go b/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go new file mode 100644 index 0000000000..fd87837140 --- /dev/null +++ b/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go @@ -0,0 +1,35 @@ +package emr + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// InstanceFleetConfig_OnDemandProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html +type InstanceFleetConfig_OnDemandProvisioningSpecification struct { + + // AllocationStrategy AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification-allocationstrategy + AllocationStrategy string `json:"AllocationStrategy,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 *InstanceFleetConfig_OnDemandProvisioningSpecification) AWSCloudFormationType() string { + return "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" +} diff --git a/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go b/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go index faa41e4fc0..2066652670 100644 --- a/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go +++ b/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go @@ -8,6 +8,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html type InstanceFleetConfig_SpotProvisioningSpecification struct { + // AllocationStrategy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-allocationstrategy + AllocationStrategy string `json:"AllocationStrategy,omitempty"` + // BlockDurationMinutes AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-blockdurationminutes diff --git a/cloudformation/events/aws-events-rule_deadletterconfig.go b/cloudformation/events/aws-events-rule_deadletterconfig.go new file mode 100644 index 0000000000..b08fce55bf --- /dev/null +++ b/cloudformation/events/aws-events-rule_deadletterconfig.go @@ -0,0 +1,35 @@ +package events + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Rule_DeadLetterConfig AWS CloudFormation Resource (AWS::Events::Rule.DeadLetterConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html +type Rule_DeadLetterConfig struct { + + // Arn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn + Arn string `json:"Arn,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 *Rule_DeadLetterConfig) AWSCloudFormationType() string { + return "AWS::Events::Rule.DeadLetterConfig" +} diff --git a/cloudformation/events/aws-events-rule_redshiftdataparameters.go b/cloudformation/events/aws-events-rule_redshiftdataparameters.go new file mode 100644 index 0000000000..f269efaa63 --- /dev/null +++ b/cloudformation/events/aws-events-rule_redshiftdataparameters.go @@ -0,0 +1,60 @@ +package events + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Rule_RedshiftDataParameters AWS CloudFormation Resource (AWS::Events::Rule.RedshiftDataParameters) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html +type Rule_RedshiftDataParameters struct { + + // Database AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-database + Database string `json:"Database,omitempty"` + + // DbUser AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-dbuser + DbUser string `json:"DbUser,omitempty"` + + // SecretManagerArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-secretmanagerarn + SecretManagerArn string `json:"SecretManagerArn,omitempty"` + + // Sql AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-sql + Sql string `json:"Sql,omitempty"` + + // StatementName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-statementname + StatementName string `json:"StatementName,omitempty"` + + // WithEvent AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-withevent + WithEvent bool `json:"WithEvent,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 *Rule_RedshiftDataParameters) AWSCloudFormationType() string { + return "AWS::Events::Rule.RedshiftDataParameters" +} diff --git a/cloudformation/events/aws-events-rule_retrypolicy.go b/cloudformation/events/aws-events-rule_retrypolicy.go new file mode 100644 index 0000000000..d70a1c3a3b --- /dev/null +++ b/cloudformation/events/aws-events-rule_retrypolicy.go @@ -0,0 +1,40 @@ +package events + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Rule_RetryPolicy AWS CloudFormation Resource (AWS::Events::Rule.RetryPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html +type Rule_RetryPolicy struct { + + // MaximumEventAgeInSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumeventageinseconds + MaximumEventAgeInSeconds int `json:"MaximumEventAgeInSeconds,omitempty"` + + // MaximumRetryAttempts AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumretryattempts + MaximumRetryAttempts int `json:"MaximumRetryAttempts,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 *Rule_RetryPolicy) AWSCloudFormationType() string { + return "AWS::Events::Rule.RetryPolicy" +} diff --git a/cloudformation/events/aws-events-rule_target.go b/cloudformation/events/aws-events-rule_target.go index 9bf42ff368..3b28285daf 100644 --- a/cloudformation/events/aws-events-rule_target.go +++ b/cloudformation/events/aws-events-rule_target.go @@ -18,6 +18,11 @@ type Rule_Target struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-batchparameters BatchParameters *Rule_BatchParameters `json:"BatchParameters,omitempty"` + // DeadLetterConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig + DeadLetterConfig *Rule_DeadLetterConfig `json:"DeadLetterConfig,omitempty"` + // EcsParameters AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters @@ -53,6 +58,16 @@ type Rule_Target struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-kinesisparameters KinesisParameters *Rule_KinesisParameters `json:"KinesisParameters,omitempty"` + // RedshiftDataParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-redshiftdataparameters + RedshiftDataParameters *Rule_RedshiftDataParameters `json:"RedshiftDataParameters,omitempty"` + + // RetryPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy + RetryPolicy *Rule_RetryPolicy `json:"RetryPolicy,omitempty"` + // RoleArn AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn diff --git a/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go b/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go index 4327aefe7e..3b6b55317e 100644 --- a/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go +++ b/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go @@ -42,6 +42,11 @@ type MatchmakingConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-description Description string `json:"Description,omitempty"` + // FlexMatchMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-flexmatchmode + FlexMatchMode string `json:"FlexMatchMode,omitempty"` + // GameProperties AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gameproperties @@ -53,7 +58,7 @@ type MatchmakingConfiguration struct { GameSessionData string `json:"GameSessionData,omitempty"` // GameSessionQueueArns AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gamesessionqueuearns GameSessionQueueArns []string `json:"GameSessionQueueArns,omitempty"` diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go index c7327201c8..da735dbcdd 100644 --- a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go @@ -6,12 +6,18 @@ import ( "fmt" "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" ) // DeliveryStream AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html type DeliveryStream struct { + // DeliveryStreamEncryptionConfigurationInput AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput + DeliveryStreamEncryptionConfigurationInput *DeliveryStream_DeliveryStreamEncryptionConfigurationInput `json:"DeliveryStreamEncryptionConfigurationInput,omitempty"` + // DeliveryStreamName AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname @@ -57,6 +63,11 @@ type DeliveryStream struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration SplunkDestinationConfiguration *DeliveryStream_SplunkDestinationConfiguration `json:"SplunkDestinationConfiguration,omitempty"` + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags + Tags []tags.Tag `json:"Tags,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go new file mode 100644 index 0000000000..5feb61596b --- /dev/null +++ b/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go @@ -0,0 +1,40 @@ +package kinesisfirehose + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// DeliveryStream_DeliveryStreamEncryptionConfigurationInput AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html +type DeliveryStream_DeliveryStreamEncryptionConfigurationInput struct { + + // KeyARN AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keyarn + KeyARN string `json:"KeyARN,omitempty"` + + // KeyType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keytype + KeyType string `json:"KeyType,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 *DeliveryStream_DeliveryStreamEncryptionConfigurationInput) AWSCloudFormationType() string { + return "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" +} diff --git a/cloudformation/lambda/aws-lambda-eventsourcemapping.go b/cloudformation/lambda/aws-lambda-eventsourcemapping.go index 8a716fb965..6ca5e2816b 100644 --- a/cloudformation/lambda/aws-lambda-eventsourcemapping.go +++ b/cloudformation/lambda/aws-lambda-eventsourcemapping.go @@ -62,6 +62,16 @@ type EventSourceMapping struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor ParallelizationFactor int `json:"ParallelizationFactor,omitempty"` + // Queues AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues + Queues []string `json:"Queues,omitempty"` + + // SourceAccessConfigurations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations + SourceAccessConfigurations []EventSourceMapping_SourceAccessConfiguration `json:"SourceAccessConfigurations,omitempty"` + // StartingPosition AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition diff --git a/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go b/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go new file mode 100644 index 0000000000..c5335c860f --- /dev/null +++ b/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go @@ -0,0 +1,40 @@ +package lambda + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// EventSourceMapping_SourceAccessConfiguration AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.SourceAccessConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html +type EventSourceMapping_SourceAccessConfiguration struct { + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-type + Type string `json:"Type,omitempty"` + + // URI AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-uri + URI string `json:"URI,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 *EventSourceMapping_SourceAccessConfiguration) AWSCloudFormationType() string { + return "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" +} diff --git a/cloudformation/logs/aws-logs-loggroup.go b/cloudformation/logs/aws-logs-loggroup.go index ab3c8d05b1..c887b3e5c4 100644 --- a/cloudformation/logs/aws-logs-loggroup.go +++ b/cloudformation/logs/aws-logs-loggroup.go @@ -12,14 +12,19 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html type LogGroup struct { + // KmsKeyId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-kmskeyid + KmsKeyId string `json:"KmsKeyId,omitempty"` + // LogGroupName AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-loggroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname LogGroupName string `json:"LogGroupName,omitempty"` // RetentionInDays AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-cwl-loggroup-retentionindays + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays RetentionInDays int `json:"RetentionInDays,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/mediapackage/aws-mediapackage-asset.go b/cloudformation/mediapackage/aws-mediapackage-asset.go new file mode 100644 index 0000000000..1435e5d47f --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-asset.go @@ -0,0 +1,137 @@ +package mediapackage + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Asset AWS CloudFormation Resource (AWS::MediaPackage::Asset) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html +type Asset struct { + + // EgressEndpoints AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-egressendpoints + EgressEndpoints []Asset_EgressEndpoint `json:"EgressEndpoints,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-id + Id string `json:"Id,omitempty"` + + // PackagingGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-packaginggroupid + PackagingGroupId string `json:"PackagingGroupId,omitempty"` + + // ResourceId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-resourceid + ResourceId string `json:"ResourceId,omitempty"` + + // SourceArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-sourcearn + SourceArn string `json:"SourceArn,omitempty"` + + // SourceRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-sourcerolearn + SourceRoleArn string `json:"SourceRoleArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html#cfn-mediapackage-asset-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 *Asset) AWSCloudFormationType() string { + return "AWS::MediaPackage::Asset" +} + +// 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 Asset) MarshalJSON() ([]byte, error) { + type Properties Asset + 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 *Asset) UnmarshalJSON(b []byte) error { + type Properties Asset + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Asset(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-asset_egressendpoint.go b/cloudformation/mediapackage/aws-mediapackage-asset_egressendpoint.go new file mode 100644 index 0000000000..cec4039073 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-asset_egressendpoint.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Asset_EgressEndpoint AWS CloudFormation Resource (AWS::MediaPackage::Asset.EgressEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html +type Asset_EgressEndpoint struct { + + // PackagingConfigurationId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html#cfn-mediapackage-asset-egressendpoint-packagingconfigurationid + PackagingConfigurationId string `json:"PackagingConfigurationId,omitempty"` + + // Url AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html#cfn-mediapackage-asset-egressendpoint-url + Url string `json:"Url,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 *Asset_EgressEndpoint) AWSCloudFormationType() string { + return "AWS::MediaPackage::Asset.EgressEndpoint" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-channel.go b/cloudformation/mediapackage/aws-mediapackage-channel.go new file mode 100644 index 0000000000..9a3c1901fa --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-channel.go @@ -0,0 +1,117 @@ +package mediapackage + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Channel AWS CloudFormation Resource (AWS::MediaPackage::Channel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html +type Channel struct { + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-description + Description string `json:"Description,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-id + Id string `json:"Id,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html#cfn-mediapackage-channel-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 *Channel) AWSCloudFormationType() string { + return "AWS::MediaPackage::Channel" +} + +// 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 Channel) MarshalJSON() ([]byte, error) { + type Properties Channel + 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 *Channel) UnmarshalJSON(b []byte) error { + type Properties Channel + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Channel(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-channel_hlsingest.go b/cloudformation/mediapackage/aws-mediapackage-channel_hlsingest.go new file mode 100644 index 0000000000..d7af1eaa46 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-channel_hlsingest.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Channel_HlsIngest AWS CloudFormation Resource (AWS::MediaPackage::Channel.HlsIngest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-hlsingest.html +type Channel_HlsIngest struct { + + // ingestEndpoints AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-hlsingest.html#cfn-mediapackage-channel-hlsingest-ingestendpoints + ingestEndpoints []Channel_IngestEndpoint `json:"ingestEndpoints,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 *Channel_HlsIngest) AWSCloudFormationType() string { + return "AWS::MediaPackage::Channel.HlsIngest" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-channel_ingestendpoint.go b/cloudformation/mediapackage/aws-mediapackage-channel_ingestendpoint.go new file mode 100644 index 0000000000..bd2dd2f69d --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-channel_ingestendpoint.go @@ -0,0 +1,50 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Channel_IngestEndpoint AWS CloudFormation Resource (AWS::MediaPackage::Channel.IngestEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html +type Channel_IngestEndpoint struct { + + // Id AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-id + Id string `json:"Id,omitempty"` + + // Password AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-password + Password string `json:"Password,omitempty"` + + // Url AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-url + Url string `json:"Url,omitempty"` + + // Username AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-ingestendpoint.html#cfn-mediapackage-channel-ingestendpoint-username + Username string `json:"Username,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 *Channel_IngestEndpoint) AWSCloudFormationType() string { + return "AWS::MediaPackage::Channel.IngestEndpoint" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint.go new file mode 100644 index 0000000000..44913477e9 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint.go @@ -0,0 +1,172 @@ +package mediapackage + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// OriginEndpoint AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html +type OriginEndpoint struct { + + // Authorization AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-authorization + Authorization *OriginEndpoint_Authorization `json:"Authorization,omitempty"` + + // ChannelId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-channelid + ChannelId string `json:"ChannelId,omitempty"` + + // CmafPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-cmafpackage + CmafPackage *OriginEndpoint_CmafPackage `json:"CmafPackage,omitempty"` + + // DashPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-dashpackage + DashPackage *OriginEndpoint_DashPackage `json:"DashPackage,omitempty"` + + // Description AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-description + Description string `json:"Description,omitempty"` + + // HlsPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-hlspackage + HlsPackage *OriginEndpoint_HlsPackage `json:"HlsPackage,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-id + Id string `json:"Id,omitempty"` + + // ManifestName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-manifestname + ManifestName string `json:"ManifestName,omitempty"` + + // MssPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-msspackage + MssPackage *OriginEndpoint_MssPackage `json:"MssPackage,omitempty"` + + // Origination AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-origination + Origination string `json:"Origination,omitempty"` + + // StartoverWindowSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-startoverwindowseconds + StartoverWindowSeconds int `json:"StartoverWindowSeconds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // TimeDelaySeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-timedelayseconds + TimeDelaySeconds int `json:"TimeDelaySeconds,omitempty"` + + // Whitelist AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html#cfn-mediapackage-originendpoint-whitelist + Whitelist []string `json:"Whitelist,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 *OriginEndpoint) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint" +} + +// 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 OriginEndpoint) MarshalJSON() ([]byte, error) { + type Properties OriginEndpoint + 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 *OriginEndpoint) UnmarshalJSON(b []byte) error { + type Properties OriginEndpoint + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = OriginEndpoint(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_adtriggers.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_adtriggers.go new file mode 100644 index 0000000000..f9992713d2 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_adtriggers.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_AdTriggers AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.AdTriggers) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-adtriggers.html +type OriginEndpoint_AdTriggers struct { + + // AdTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-adtriggers.html#cfn-mediapackage-originendpoint-adtriggers-adtriggers + AdTriggers []string `json:"AdTriggers,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 *OriginEndpoint_AdTriggers) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.AdTriggers" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_authorization.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_authorization.go new file mode 100644 index 0000000000..38734293d5 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_authorization.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_Authorization AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.Authorization) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html +type OriginEndpoint_Authorization struct { + + // CdnIdentifierSecret AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html#cfn-mediapackage-originendpoint-authorization-cdnidentifiersecret + CdnIdentifierSecret string `json:"CdnIdentifierSecret,omitempty"` + + // SecretsRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html#cfn-mediapackage-originendpoint-authorization-secretsrolearn + SecretsRoleArn string `json:"SecretsRoleArn,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 *OriginEndpoint_Authorization) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.Authorization" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafencryption.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafencryption.go new file mode 100644 index 0000000000..1920609b06 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafencryption.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_CmafEncryption AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.CmafEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html +type OriginEndpoint_CmafEncryption struct { + + // KeyRotationIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html#cfn-mediapackage-originendpoint-cmafencryption-keyrotationintervalseconds + KeyRotationIntervalSeconds int `json:"KeyRotationIntervalSeconds,omitempty"` + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html#cfn-mediapackage-originendpoint-cmafencryption-spekekeyprovider + SpekeKeyProvider *OriginEndpoint_SpekeKeyProvider `json:"SpekeKeyProvider,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 *OriginEndpoint_CmafEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.CmafEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafpackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafpackage.go new file mode 100644 index 0000000000..953f6fe5aa --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_cmafpackage.go @@ -0,0 +1,55 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_CmafPackage AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.CmafPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html +type OriginEndpoint_CmafPackage struct { + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-encryption + Encryption *OriginEndpoint_CmafEncryption `json:"Encryption,omitempty"` + + // HlsManifests AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-hlsmanifests + HlsManifests []OriginEndpoint_HlsManifest `json:"HlsManifests,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // SegmentPrefix AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-segmentprefix + SegmentPrefix string `json:"SegmentPrefix,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html#cfn-mediapackage-originendpoint-cmafpackage-streamselection + StreamSelection *OriginEndpoint_StreamSelection `json:"StreamSelection,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 *OriginEndpoint_CmafPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.CmafPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashencryption.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashencryption.go new file mode 100644 index 0000000000..2e134d7aa8 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashencryption.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_DashEncryption AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.DashEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html +type OriginEndpoint_DashEncryption struct { + + // KeyRotationIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html#cfn-mediapackage-originendpoint-dashencryption-keyrotationintervalseconds + KeyRotationIntervalSeconds int `json:"KeyRotationIntervalSeconds,omitempty"` + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html#cfn-mediapackage-originendpoint-dashencryption-spekekeyprovider + SpekeKeyProvider *OriginEndpoint_SpekeKeyProvider `json:"SpekeKeyProvider,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 *OriginEndpoint_DashEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.DashEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go new file mode 100644 index 0000000000..bfc4af26d6 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go @@ -0,0 +1,95 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_DashPackage AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.DashPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html +type OriginEndpoint_DashPackage struct { + + // AdTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-adtriggers + AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + + // AdsOnDeliveryRestrictions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-adsondeliveryrestrictions + AdsOnDeliveryRestrictions string `json:"AdsOnDeliveryRestrictions,omitempty"` + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-encryption + Encryption *OriginEndpoint_DashEncryption `json:"Encryption,omitempty"` + + // ManifestLayout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-manifestlayout + ManifestLayout string `json:"ManifestLayout,omitempty"` + + // ManifestWindowSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-manifestwindowseconds + ManifestWindowSeconds int `json:"ManifestWindowSeconds,omitempty"` + + // MinBufferTimeSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-minbuffertimeseconds + MinBufferTimeSeconds int `json:"MinBufferTimeSeconds,omitempty"` + + // MinUpdatePeriodSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-minupdateperiodseconds + MinUpdatePeriodSeconds int `json:"MinUpdatePeriodSeconds,omitempty"` + + // PeriodTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-periodtriggers + PeriodTriggers []string `json:"PeriodTriggers,omitempty"` + + // Profile AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-profile + Profile string `json:"Profile,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // SegmentTemplateFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-segmenttemplateformat + SegmentTemplateFormat string `json:"SegmentTemplateFormat,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-streamselection + StreamSelection *OriginEndpoint_StreamSelection `json:"StreamSelection,omitempty"` + + // SuggestedPresentationDelaySeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-suggestedpresentationdelayseconds + SuggestedPresentationDelaySeconds int `json:"SuggestedPresentationDelaySeconds,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 *OriginEndpoint_DashPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.DashPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsencryption.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsencryption.go new file mode 100644 index 0000000000..6fe0daed8f --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsencryption.go @@ -0,0 +1,55 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_HlsEncryption AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.HlsEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html +type OriginEndpoint_HlsEncryption struct { + + // ConstantInitializationVector AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-constantinitializationvector + ConstantInitializationVector string `json:"ConstantInitializationVector,omitempty"` + + // EncryptionMethod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-encryptionmethod + EncryptionMethod string `json:"EncryptionMethod,omitempty"` + + // KeyRotationIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-keyrotationintervalseconds + KeyRotationIntervalSeconds int `json:"KeyRotationIntervalSeconds,omitempty"` + + // RepeatExtXKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-repeatextxkey + RepeatExtXKey bool `json:"RepeatExtXKey,omitempty"` + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html#cfn-mediapackage-originendpoint-hlsencryption-spekekeyprovider + SpekeKeyProvider *OriginEndpoint_SpekeKeyProvider `json:"SpekeKeyProvider,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 *OriginEndpoint_HlsEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.HlsEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go new file mode 100644 index 0000000000..1e905fd3ba --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go @@ -0,0 +1,80 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_HlsManifest AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.HlsManifest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html +type OriginEndpoint_HlsManifest struct { + + // AdMarkers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-admarkers + AdMarkers string `json:"AdMarkers,omitempty"` + + // AdTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-adtriggers + AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + + // AdsOnDeliveryRestrictions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-adsondeliveryrestrictions + AdsOnDeliveryRestrictions string `json:"AdsOnDeliveryRestrictions,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-id + Id string `json:"Id,omitempty"` + + // IncludeIframeOnlyStream AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-includeiframeonlystream + IncludeIframeOnlyStream bool `json:"IncludeIframeOnlyStream,omitempty"` + + // ManifestName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-manifestname + ManifestName string `json:"ManifestName,omitempty"` + + // PlaylistType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-playlisttype + PlaylistType string `json:"PlaylistType,omitempty"` + + // PlaylistWindowSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-playlistwindowseconds + PlaylistWindowSeconds int `json:"PlaylistWindowSeconds,omitempty"` + + // ProgramDateTimeIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-programdatetimeintervalseconds + ProgramDateTimeIntervalSeconds int `json:"ProgramDateTimeIntervalSeconds,omitempty"` + + // Url AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-url + Url string `json:"Url,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 *OriginEndpoint_HlsManifest) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.HlsManifest" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go new file mode 100644 index 0000000000..4b4823e2b9 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go @@ -0,0 +1,85 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_HlsPackage AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.HlsPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html +type OriginEndpoint_HlsPackage struct { + + // AdMarkers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-admarkers + AdMarkers string `json:"AdMarkers,omitempty"` + + // AdTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-adtriggers + AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + + // AdsOnDeliveryRestrictions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-adsondeliveryrestrictions + AdsOnDeliveryRestrictions string `json:"AdsOnDeliveryRestrictions,omitempty"` + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-encryption + Encryption *OriginEndpoint_HlsEncryption `json:"Encryption,omitempty"` + + // IncludeIframeOnlyStream AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-includeiframeonlystream + IncludeIframeOnlyStream bool `json:"IncludeIframeOnlyStream,omitempty"` + + // PlaylistType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-playlisttype + PlaylistType string `json:"PlaylistType,omitempty"` + + // PlaylistWindowSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-playlistwindowseconds + PlaylistWindowSeconds int `json:"PlaylistWindowSeconds,omitempty"` + + // ProgramDateTimeIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-programdatetimeintervalseconds + ProgramDateTimeIntervalSeconds int `json:"ProgramDateTimeIntervalSeconds,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-streamselection + StreamSelection *OriginEndpoint_StreamSelection `json:"StreamSelection,omitempty"` + + // UseAudioRenditionGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-useaudiorenditiongroup + UseAudioRenditionGroup bool `json:"UseAudioRenditionGroup,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 *OriginEndpoint_HlsPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.HlsPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_mssencryption.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_mssencryption.go new file mode 100644 index 0000000000..0c556483be --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_mssencryption.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_MssEncryption AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.MssEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html +type OriginEndpoint_MssEncryption struct { + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html#cfn-mediapackage-originendpoint-mssencryption-spekekeyprovider + SpekeKeyProvider *OriginEndpoint_SpekeKeyProvider `json:"SpekeKeyProvider,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 *OriginEndpoint_MssEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.MssEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_msspackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_msspackage.go new file mode 100644 index 0000000000..4d2e69c0b7 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_msspackage.go @@ -0,0 +1,50 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_MssPackage AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.MssPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html +type OriginEndpoint_MssPackage struct { + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-encryption + Encryption *OriginEndpoint_MssEncryption `json:"Encryption,omitempty"` + + // ManifestWindowSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-manifestwindowseconds + ManifestWindowSeconds int `json:"ManifestWindowSeconds,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html#cfn-mediapackage-originendpoint-msspackage-streamselection + StreamSelection *OriginEndpoint_StreamSelection `json:"StreamSelection,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 *OriginEndpoint_MssPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.MssPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_spekekeyprovider.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_spekekeyprovider.go new file mode 100644 index 0000000000..342fc51fc5 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_spekekeyprovider.go @@ -0,0 +1,55 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_SpekeKeyProvider AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html +type OriginEndpoint_SpekeKeyProvider struct { + + // CertificateArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-certificatearn + CertificateArn string `json:"CertificateArn,omitempty"` + + // ResourceId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-resourceid + ResourceId string `json:"ResourceId,omitempty"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // SystemIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-systemids + SystemIds []string `json:"SystemIds,omitempty"` + + // Url AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html#cfn-mediapackage-originendpoint-spekekeyprovider-url + Url string `json:"Url,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 *OriginEndpoint_SpekeKeyProvider) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_streamselection.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_streamselection.go new file mode 100644 index 0000000000..9196ad1d70 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_streamselection.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// OriginEndpoint_StreamSelection AWS CloudFormation Resource (AWS::MediaPackage::OriginEndpoint.StreamSelection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html +type OriginEndpoint_StreamSelection struct { + + // MaxVideoBitsPerSecond AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-maxvideobitspersecond + MaxVideoBitsPerSecond int `json:"MaxVideoBitsPerSecond,omitempty"` + + // MinVideoBitsPerSecond AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-minvideobitspersecond + MinVideoBitsPerSecond int `json:"MinVideoBitsPerSecond,omitempty"` + + // StreamOrder AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html#cfn-mediapackage-originendpoint-streamselection-streamorder + StreamOrder string `json:"StreamOrder,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 *OriginEndpoint_StreamSelection) AWSCloudFormationType() string { + return "AWS::MediaPackage::OriginEndpoint.StreamSelection" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration.go new file mode 100644 index 0000000000..4e0062c156 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration.go @@ -0,0 +1,137 @@ +package mediapackage + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// PackagingConfiguration AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html +type PackagingConfiguration struct { + + // CmafPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-cmafpackage + CmafPackage *PackagingConfiguration_CmafPackage `json:"CmafPackage,omitempty"` + + // DashPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-dashpackage + DashPackage *PackagingConfiguration_DashPackage `json:"DashPackage,omitempty"` + + // HlsPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-hlspackage + HlsPackage *PackagingConfiguration_HlsPackage `json:"HlsPackage,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-id + Id string `json:"Id,omitempty"` + + // MssPackage AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-msspackage + MssPackage *PackagingConfiguration_MssPackage `json:"MssPackage,omitempty"` + + // PackagingGroupId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-packaginggroupid + PackagingGroupId string `json:"PackagingGroupId,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html#cfn-mediapackage-packagingconfiguration-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 *PackagingConfiguration) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration" +} + +// 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 PackagingConfiguration) MarshalJSON() ([]byte, error) { + type Properties PackagingConfiguration + 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 *PackagingConfiguration) UnmarshalJSON(b []byte) error { + type Properties PackagingConfiguration + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PackagingConfiguration(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafencryption.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafencryption.go new file mode 100644 index 0000000000..ba1e6b497d --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafencryption.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_CmafEncryption AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.CmafEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html +type PackagingConfiguration_CmafEncryption struct { + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html#cfn-mediapackage-packagingconfiguration-cmafencryption-spekekeyprovider + SpekeKeyProvider interface{} `json:"SpekeKeyProvider,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 *PackagingConfiguration_CmafEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.CmafEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafpackage.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafpackage.go new file mode 100644 index 0000000000..28f90d43c5 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_cmafpackage.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_CmafPackage AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.CmafPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html +type PackagingConfiguration_CmafPackage struct { + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-encryption + Encryption *PackagingConfiguration_CmafEncryption `json:"Encryption,omitempty"` + + // HlsManifests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-hlsmanifests + HlsManifests []PackagingConfiguration_HlsManifest `json:"HlsManifests,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html#cfn-mediapackage-packagingconfiguration-cmafpackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,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 *PackagingConfiguration_CmafPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.CmafPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashencryption.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashencryption.go new file mode 100644 index 0000000000..53e4fa3e88 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashencryption.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_DashEncryption AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.DashEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html +type PackagingConfiguration_DashEncryption struct { + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html#cfn-mediapackage-packagingconfiguration-dashencryption-spekekeyprovider + SpekeKeyProvider interface{} `json:"SpekeKeyProvider,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 *PackagingConfiguration_DashEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.DashEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashmanifest.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashmanifest.go new file mode 100644 index 0000000000..f007c1edff --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashmanifest.go @@ -0,0 +1,55 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_DashManifest AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.DashManifest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html +type PackagingConfiguration_DashManifest struct { + + // ManifestLayout AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-manifestlayout + ManifestLayout string `json:"ManifestLayout,omitempty"` + + // ManifestName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-manifestname + ManifestName string `json:"ManifestName,omitempty"` + + // MinBufferTimeSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-minbuffertimeseconds + MinBufferTimeSeconds int `json:"MinBufferTimeSeconds,omitempty"` + + // Profile AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-profile + Profile string `json:"Profile,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html#cfn-mediapackage-packagingconfiguration-dashmanifest-streamselection + StreamSelection *PackagingConfiguration_StreamSelection `json:"StreamSelection,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 *PackagingConfiguration_DashManifest) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.DashManifest" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashpackage.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashpackage.go new file mode 100644 index 0000000000..40725b1a23 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_dashpackage.go @@ -0,0 +1,55 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_DashPackage AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.DashPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html +type PackagingConfiguration_DashPackage struct { + + // DashManifests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-dashmanifests + DashManifests []PackagingConfiguration_DashManifest `json:"DashManifests,omitempty"` + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-encryption + Encryption *PackagingConfiguration_DashEncryption `json:"Encryption,omitempty"` + + // PeriodTriggers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-periodtriggers + PeriodTriggers []string `json:"PeriodTriggers,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // SegmentTemplateFormat AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html#cfn-mediapackage-packagingconfiguration-dashpackage-segmenttemplateformat + SegmentTemplateFormat string `json:"SegmentTemplateFormat,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 *PackagingConfiguration_DashPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.DashPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsencryption.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsencryption.go new file mode 100644 index 0000000000..a6ee22e2f2 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsencryption.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_HlsEncryption AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.HlsEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html +type PackagingConfiguration_HlsEncryption struct { + + // ConstantInitializationVector AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-constantinitializationvector + ConstantInitializationVector string `json:"ConstantInitializationVector,omitempty"` + + // EncryptionMethod AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-encryptionmethod + EncryptionMethod string `json:"EncryptionMethod,omitempty"` + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html#cfn-mediapackage-packagingconfiguration-hlsencryption-spekekeyprovider + SpekeKeyProvider interface{} `json:"SpekeKeyProvider,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 *PackagingConfiguration_HlsEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.HlsEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsmanifest.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsmanifest.go new file mode 100644 index 0000000000..2b108f3882 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlsmanifest.go @@ -0,0 +1,60 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_HlsManifest AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.HlsManifest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html +type PackagingConfiguration_HlsManifest struct { + + // AdMarkers AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-admarkers + AdMarkers string `json:"AdMarkers,omitempty"` + + // IncludeIframeOnlyStream AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-includeiframeonlystream + IncludeIframeOnlyStream bool `json:"IncludeIframeOnlyStream,omitempty"` + + // ManifestName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-manifestname + ManifestName string `json:"ManifestName,omitempty"` + + // ProgramDateTimeIntervalSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-programdatetimeintervalseconds + ProgramDateTimeIntervalSeconds int `json:"ProgramDateTimeIntervalSeconds,omitempty"` + + // RepeatExtXKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-repeatextxkey + RepeatExtXKey bool `json:"RepeatExtXKey,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html#cfn-mediapackage-packagingconfiguration-hlsmanifest-streamselection + StreamSelection *PackagingConfiguration_StreamSelection `json:"StreamSelection,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 *PackagingConfiguration_HlsManifest) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.HlsManifest" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlspackage.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlspackage.go new file mode 100644 index 0000000000..35514bfb6f --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_hlspackage.go @@ -0,0 +1,50 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_HlsPackage AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.HlsPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html +type PackagingConfiguration_HlsPackage struct { + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-encryption + Encryption *PackagingConfiguration_HlsEncryption `json:"Encryption,omitempty"` + + // HlsManifests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-hlsmanifests + HlsManifests []PackagingConfiguration_HlsManifest `json:"HlsManifests,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,omitempty"` + + // UseAudioRenditionGroup AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html#cfn-mediapackage-packagingconfiguration-hlspackage-useaudiorenditiongroup + UseAudioRenditionGroup bool `json:"UseAudioRenditionGroup,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 *PackagingConfiguration_HlsPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.HlsPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssencryption.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssencryption.go new file mode 100644 index 0000000000..277e44aaa9 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssencryption.go @@ -0,0 +1,35 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_MssEncryption AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.MssEncryption) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html +type PackagingConfiguration_MssEncryption struct { + + // SpekeKeyProvider AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html#cfn-mediapackage-packagingconfiguration-mssencryption-spekekeyprovider + SpekeKeyProvider interface{} `json:"SpekeKeyProvider,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 *PackagingConfiguration_MssEncryption) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.MssEncryption" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssmanifest.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssmanifest.go new file mode 100644 index 0000000000..abe9ccc4a6 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_mssmanifest.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_MssManifest AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.MssManifest) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html +type PackagingConfiguration_MssManifest struct { + + // ManifestName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html#cfn-mediapackage-packagingconfiguration-mssmanifest-manifestname + ManifestName string `json:"ManifestName,omitempty"` + + // StreamSelection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html#cfn-mediapackage-packagingconfiguration-mssmanifest-streamselection + StreamSelection *PackagingConfiguration_StreamSelection `json:"StreamSelection,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 *PackagingConfiguration_MssManifest) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.MssManifest" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_msspackage.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_msspackage.go new file mode 100644 index 0000000000..56ff7a8681 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_msspackage.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_MssPackage AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.MssPackage) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html +type PackagingConfiguration_MssPackage struct { + + // Encryption AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-encryption + Encryption *PackagingConfiguration_MssEncryption `json:"Encryption,omitempty"` + + // MssManifests AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-mssmanifests + MssManifests []PackagingConfiguration_MssManifest `json:"MssManifests,omitempty"` + + // SegmentDurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html#cfn-mediapackage-packagingconfiguration-msspackage-segmentdurationseconds + SegmentDurationSeconds int `json:"SegmentDurationSeconds,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 *PackagingConfiguration_MssPackage) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.MssPackage" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_spekekeyprovider.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_spekekeyprovider.go new file mode 100644 index 0000000000..d6e56f6a52 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_spekekeyprovider.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_SpekeKeyProvider AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html +type PackagingConfiguration_SpekeKeyProvider struct { + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-rolearn + RoleArn string `json:"RoleArn,omitempty"` + + // SystemIds AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-systemids + SystemIds []string `json:"SystemIds,omitempty"` + + // Url AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html#cfn-mediapackage-packagingconfiguration-spekekeyprovider-url + Url string `json:"Url,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 *PackagingConfiguration_SpekeKeyProvider) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_streamselection.go b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_streamselection.go new file mode 100644 index 0000000000..4e8d8b6139 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packagingconfiguration_streamselection.go @@ -0,0 +1,45 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingConfiguration_StreamSelection AWS CloudFormation Resource (AWS::MediaPackage::PackagingConfiguration.StreamSelection) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html +type PackagingConfiguration_StreamSelection struct { + + // MaxVideoBitsPerSecond AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-maxvideobitspersecond + MaxVideoBitsPerSecond int `json:"MaxVideoBitsPerSecond,omitempty"` + + // MinVideoBitsPerSecond AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-minvideobitspersecond + MinVideoBitsPerSecond int `json:"MinVideoBitsPerSecond,omitempty"` + + // StreamOrder AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html#cfn-mediapackage-packagingconfiguration-streamselection-streamorder + StreamOrder string `json:"StreamOrder,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 *PackagingConfiguration_StreamSelection) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingConfiguration.StreamSelection" +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packaginggroup.go b/cloudformation/mediapackage/aws-mediapackage-packaginggroup.go new file mode 100644 index 0000000000..629082413c --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packaginggroup.go @@ -0,0 +1,117 @@ +package mediapackage + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// PackagingGroup AWS CloudFormation Resource (AWS::MediaPackage::PackagingGroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html +type PackagingGroup struct { + + // Authorization AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-authorization + Authorization *PackagingGroup_Authorization `json:"Authorization,omitempty"` + + // Id AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-id + Id string `json:"Id,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html#cfn-mediapackage-packaginggroup-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 *PackagingGroup) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingGroup" +} + +// 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 PackagingGroup) MarshalJSON() ([]byte, error) { + type Properties PackagingGroup + 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 *PackagingGroup) UnmarshalJSON(b []byte) error { + type Properties PackagingGroup + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PackagingGroup(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediapackage/aws-mediapackage-packaginggroup_authorization.go b/cloudformation/mediapackage/aws-mediapackage-packaginggroup_authorization.go new file mode 100644 index 0000000000..ded1e1b089 --- /dev/null +++ b/cloudformation/mediapackage/aws-mediapackage-packaginggroup_authorization.go @@ -0,0 +1,40 @@ +package mediapackage + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// PackagingGroup_Authorization AWS CloudFormation Resource (AWS::MediaPackage::PackagingGroup.Authorization) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html +type PackagingGroup_Authorization struct { + + // CdnIdentifierSecret AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html#cfn-mediapackage-packaginggroup-authorization-cdnidentifiersecret + CdnIdentifierSecret string `json:"CdnIdentifierSecret,omitempty"` + + // SecretsRoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html#cfn-mediapackage-packaginggroup-authorization-secretsrolearn + SecretsRoleArn string `json:"SecretsRoleArn,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 *PackagingGroup_Authorization) AWSCloudFormationType() string { + return "AWS::MediaPackage::PackagingGroup.Authorization" +} diff --git a/cloudformation/rds/aws-rds-dbcluster.go b/cloudformation/rds/aws-rds-dbcluster.go index e535585406..cc0115b4a7 100644 --- a/cloudformation/rds/aws-rds-dbcluster.go +++ b/cloudformation/rds/aws-rds-dbcluster.go @@ -88,6 +88,11 @@ type DBCluster struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-engineversion EngineVersion string `json:"EngineVersion,omitempty"` + // GlobalClusterIdentifier AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-globalclusteridentifier + GlobalClusterIdentifier string `json:"GlobalClusterIdentifier,omitempty"` + // KmsKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#cfn-rds-dbcluster-kmskeyid diff --git a/cloudformation/s3/aws-s3-bucket_metrics.go b/cloudformation/s3/aws-s3-bucket_metrics.go index 1b0b784be3..0bcc9f0839 100644 --- a/cloudformation/s3/aws-s3-bucket_metrics.go +++ b/cloudformation/s3/aws-s3-bucket_metrics.go @@ -9,7 +9,7 @@ import ( type Bucket_Metrics struct { // EventThreshold AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-metrics.html#cfn-s3-bucket-metrics-eventthreshold EventThreshold *Bucket_ReplicationTimeValue `json:"EventThreshold,omitempty"` diff --git a/cloudformation/s3/aws-s3-bucket_replicamodifications.go b/cloudformation/s3/aws-s3-bucket_replicamodifications.go new file mode 100644 index 0000000000..971d88ef36 --- /dev/null +++ b/cloudformation/s3/aws-s3-bucket_replicamodifications.go @@ -0,0 +1,35 @@ +package s3 + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Bucket_ReplicaModifications AWS CloudFormation Resource (AWS::S3::Bucket.ReplicaModifications) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html +type Bucket_ReplicaModifications struct { + + // Status AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-replicamodifications.html#cfn-s3-bucket-replicamodifications-status + Status string `json:"Status,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 *Bucket_ReplicaModifications) AWSCloudFormationType() string { + return "AWS::S3::Bucket.ReplicaModifications" +} diff --git a/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go b/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go index ffde1ccce3..17817183b7 100644 --- a/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go +++ b/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go @@ -8,8 +8,13 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html type Bucket_SourceSelectionCriteria struct { + // ReplicaModifications AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-replicamodifications + ReplicaModifications *Bucket_ReplicaModifications `json:"ReplicaModifications,omitempty"` + // SseKmsEncryptedObjects AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-ssekmsencryptedobjects SseKmsEncryptedObjects *Bucket_SseKmsEncryptedObjects `json:"SseKmsEncryptedObjects,omitempty"` diff --git a/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go b/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go index 48d3925333..06142ba382 100644 --- a/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go +++ b/cloudformation/sagemaker/aws-sagemaker-model_containerdefinition.go @@ -23,6 +23,11 @@ type Model_ContainerDefinition struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-image Image string `json:"Image,omitempty"` + // ImageConfig AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-imageconfig + ImageConfig *Model_ImageConfig `json:"ImageConfig,omitempty"` + // Mode AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition.html#cfn-sagemaker-model-containerdefinition-mode diff --git a/cloudformation/sagemaker/aws-sagemaker-model_imageconfig.go b/cloudformation/sagemaker/aws-sagemaker-model_imageconfig.go new file mode 100644 index 0000000000..16f27415fe --- /dev/null +++ b/cloudformation/sagemaker/aws-sagemaker-model_imageconfig.go @@ -0,0 +1,35 @@ +package sagemaker + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Model_ImageConfig AWS CloudFormation Resource (AWS::SageMaker::Model.ImageConfig) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html +type Model_ImageConfig struct { + + // RepositoryAccessMode AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-containerdefinition-imageconfig.html#cfn-sagemaker-model-containerdefinition-imageconfig-repositoryaccessmode + RepositoryAccessMode string `json:"RepositoryAccessMode,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 *Model_ImageConfig) AWSCloudFormationType() string { + return "AWS::SageMaker::Model.ImageConfig" +} diff --git a/cloudformation/sns/aws-sns-subscription.go b/cloudformation/sns/aws-sns-subscription.go index 589d75c70b..5c744e05cc 100644 --- a/cloudformation/sns/aws-sns-subscription.go +++ b/cloudformation/sns/aws-sns-subscription.go @@ -47,6 +47,11 @@ type Subscription struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region Region string `json:"Region,omitempty"` + // SubscriptionRoleArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-subscriptionrolearn + SubscriptionRoleArn string `json:"SubscriptionRoleArn,omitempty"` + // TopicArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn diff --git a/cloudformation/sns/aws-sns-topic.go b/cloudformation/sns/aws-sns-topic.go index 1a7fee7f93..f6c9531119 100644 --- a/cloudformation/sns/aws-sns-topic.go +++ b/cloudformation/sns/aws-sns-topic.go @@ -23,6 +23,11 @@ type Topic struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-displayname DisplayName string `json:"DisplayName,omitempty"` + // FifoTopic AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-fifotopic + FifoTopic bool `json:"FifoTopic,omitempty"` + // KmsMasterKeyId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html#cfn-sns-topic-kmsmasterkeyid diff --git a/cloudformation/transfer/aws-transfer-server_endpointdetails.go b/cloudformation/transfer/aws-transfer-server_endpointdetails.go index af089dde9f..e0f49aa2e2 100644 --- a/cloudformation/transfer/aws-transfer-server_endpointdetails.go +++ b/cloudformation/transfer/aws-transfer-server_endpointdetails.go @@ -13,6 +13,11 @@ type Server_EndpointDetails struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-addressallocationids AddressAllocationIds []string `json:"AddressAllocationIds,omitempty"` + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-securitygroupids + SecurityGroupIds []Server_SecurityGroupId `json:"SecurityGroupIds,omitempty"` + // SubnetIds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-subnetids diff --git a/cloudformation/transfer/aws-transfer-server_securitygroupid.go b/cloudformation/transfer/aws-transfer-server_securitygroupid.go new file mode 100644 index 0000000000..7c8eb91e90 --- /dev/null +++ b/cloudformation/transfer/aws-transfer-server_securitygroupid.go @@ -0,0 +1,30 @@ +package transfer + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Server_SecurityGroupId AWS CloudFormation Resource (AWS::Transfer::Server.SecurityGroupId) +// See: +type Server_SecurityGroupId struct { + + // 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 *Server_SecurityGroupId) AWSCloudFormationType() string { + return "AWS::Transfer::Server.SecurityGroupId" +} diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 3c24f5a82b..9d261fbe21 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -516,9 +516,6 @@ var CloudformationSchema = `{ "HostInstanceType": { "type": "string" }, - "LdapMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapMetadata" - }, "LdapServerMetadata": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" }, @@ -623,40 +620,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AmazonMQ::Broker.InterBrokerCred": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LdapMetadata": { - "additionalProperties": false, - "properties": { - "InterBrokerCreds": { - "items": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.InterBrokerCred" - }, - "type": "array" - }, - "ServerMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.ServerMetadata" - } - }, - "required": [ - "ServerMetadata" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.LdapServerMetadata": { "additionalProperties": false, "properties": { @@ -740,57 +703,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::AmazonMQ::Broker.ServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "RoleBase", - "RoleSearchMatching", - "ServiceAccountPassword", - "ServiceAccountUsername", - "UserBase", - "UserSearchMatching" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.TagsEntry": { "additionalProperties": false, "properties": { @@ -9478,6 +9390,9 @@ var CloudformationSchema = `{ "ApiId": { "type": "string" }, + "ApiKeyId": { + "type": "string" + }, "Description": { "type": "string" }, @@ -9816,6 +9731,9 @@ var CloudformationSchema = `{ }, "ResponseMappingTemplateS3Location": { "type": "string" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" } }, "required": [ @@ -9847,6 +9765,33 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { @@ -11078,6 +11023,9 @@ var CloudformationSchema = `{ }, "QueryString": { "type": "string" + }, + "WorkGroup": { + "type": "string" } }, "required": [ @@ -11333,6 +11281,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "CapacityRebalance": { + "type": "boolean" + }, "Cooldown": { "type": "string" }, @@ -11502,6 +11453,9 @@ var CloudformationSchema = `{ "InstanceType": { "type": "string" }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, "WeightedCapacity": { "type": "string" } @@ -11705,6 +11659,9 @@ var CloudformationSchema = `{ "LaunchConfigurationName": { "type": "string" }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOption" + }, "PlacementTenancy": { "type": "string" }, @@ -11796,6 +11753,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOption": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { @@ -12867,6 +12839,9 @@ var CloudformationSchema = `{ "State": { "type": "string" }, + "Tags": { + "type": "object" + }, "Type": { "type": "string" } @@ -13031,6 +13006,9 @@ var CloudformationSchema = `{ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "Tags": { + "type": "object" + }, "Timeout": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, @@ -13437,6 +13415,9 @@ var CloudformationSchema = `{ }, "State": { "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ @@ -15532,6 +15513,9 @@ var CloudformationSchema = `{ "OriginPath": { "type": "string" }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + }, "S3OriginConfig": { "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } @@ -15639,6 +15623,21 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::Distribution.Restrictions": { "additionalProperties": false, "properties": { @@ -27779,6 +27778,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CarrierGatewayId": { + "type": "string" + }, "DestinationCidrBlock": { "type": "string" }, @@ -27794,6 +27796,9 @@ var CloudformationSchema = `{ "InstanceId": { "type": "string" }, + "LocalGatewayId": { + "type": "string" + }, "NatGatewayId": { "type": "string" }, @@ -27806,6 +27811,9 @@ var CloudformationSchema = `{ "TransitGatewayId": { "type": "string" }, + "VpcEndpointId": { + "type": "string" + }, "VpcPeeringConnectionId": { "type": "string" } @@ -28784,6 +28792,9 @@ var CloudformationSchema = `{ "MapPublicIpOnLaunch": { "type": "boolean" }, + "OutpostArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -33348,9 +33359,15 @@ var CloudformationSchema = `{ "KerberosAttributes": { "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, "LogUri": { "type": "string" }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + }, "Name": { "type": "string" }, @@ -33366,6 +33383,9 @@ var CloudformationSchema = `{ "ServiceRole": { "type": "string" }, + "StepConcurrencyLevel": { + "type": "number" + }, "Steps": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" @@ -33515,6 +33535,32 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "type": "number" + }, + "MinimumCapacityUnits": { + "type": "number" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, "AWS::EMR::Cluster.Configuration": { "additionalProperties": false, "properties": { @@ -33623,13 +33669,13 @@ var CloudformationSchema = `{ "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::Cluster.InstanceGroupConfig": { @@ -33799,6 +33845,15 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.MetricDimension": { "additionalProperties": false, "properties": { @@ -33815,6 +33870,18 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::Cluster.PlacementType": { "additionalProperties": false, "properties": { @@ -33932,6 +33999,9 @@ var CloudformationSchema = `{ "AWS::EMR::Cluster.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34127,13 +34197,13 @@ var CloudformationSchema = `{ "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { @@ -34166,9 +34236,24 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34990,6 +35075,9 @@ var CloudformationSchema = `{ "EngineVersion": { "type": "string" }, + "GlobalReplicationGroupId": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -36152,9 +36240,7 @@ var CloudformationSchema = `{ }, "required": [ "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "LoadBalancerArn" ], "type": "object" }, @@ -37003,6 +37089,9 @@ var CloudformationSchema = `{ "AllocationId": { "type": "string" }, + "IPv6Address": { + "type": "string" + }, "PrivateIPv4Address": { "type": "string" }, @@ -37137,9 +37226,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "HttpCode" - ], "type": "object" }, "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { @@ -37368,6 +37454,15 @@ var CloudformationSchema = `{ "InstanceType": { "type": "string" }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, "ZoneAwarenessConfig": { "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" }, @@ -38100,6 +38195,15 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Events::Rule.EcsParameters": { "additionalProperties": false, "properties": { @@ -38199,6 +38303,46 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Events::Rule.RunCommandParameters": { "additionalProperties": false, "properties": { @@ -38254,6 +38398,9 @@ var CloudformationSchema = `{ "BatchParameters": { "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + }, "EcsParameters": { "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" }, @@ -38275,6 +38422,12 @@ var CloudformationSchema = `{ "KinesisParameters": { "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + }, "RoleArn": { "type": "string" }, @@ -39439,6 +39592,9 @@ var CloudformationSchema = `{ "Description": { "type": "string" }, + "FlexMatchMode": { + "type": "string" + }, "GameProperties": { "items": { "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" @@ -39469,7 +39625,6 @@ var CloudformationSchema = `{ }, "required": [ "AcceptanceRequired", - "GameSessionQueueArns", "Name", "RequestTimeoutSeconds", "RuleSetName" @@ -51937,6 +52092,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + }, "DeliveryStreamName": { "type": "string" }, @@ -51963,6 +52121,12 @@ var CloudformationSchema = `{ }, "SplunkDestinationConfiguration": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" @@ -52050,6 +52214,21 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, "AWS::KinesisFirehose::DeliveryStream.Deserializer": { "additionalProperties": false, "properties": { @@ -53301,6 +53480,18 @@ var CloudformationSchema = `{ "ParallelizationFactor": { "type": "number" }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" + }, + "type": "array" + }, "StartingPosition": { "type": "string" }, @@ -53356,6 +53547,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "URI": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::Function": { "additionalProperties": false, "properties": { @@ -54004,6 +54207,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "KmsKeyId": { + "type": "string" + }, "LogGroupName": { "type": "string" }, @@ -58216,7 +58422,7 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::MediaStore::Container": { + "AWS::MediaPackage::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -58248,246 +58454,45 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { + "EgressEndpoints": { "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" }, "type": "array" }, - "LifecyclePolicy": { + "Id": { "type": "string" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { + "PackagingGroupId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ContainerName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::MediaStore::Container" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { + "ResourceId": { "type": "string" }, - "SnapshotIdentifier": { + "SourceArn": { "type": "string" }, - "SourceDBClusterIdentifier": { + "SourceRoleArn": { "type": "string" }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, + "required": [ + "Id", + "PackagingGroupId", + "SourceArn", + "SourceRoleArn" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MediaPackage::Asset" ], "type": "string" }, @@ -58501,26 +58506,1264 @@ var CloudformationSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBCluster.DBClusterRole": { + "AWS::MediaPackage::Asset.EgressEndpoint": { "additionalProperties": false, "properties": { - "FeatureName": { + "PackagingConfigurationId": { "type": "string" }, - "RoleArn": { + "Url": { "type": "string" } }, "required": [ - "RoleArn" + "PackagingConfigurationId", + "Url" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MediaPackage::Channel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "additionalProperties": false, + "properties": { + "ingestEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + }, + "Id": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + }, + "Origination": { + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeDelaySeconds": { + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::OriginEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.AdTriggers": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + }, + "ManifestLayout": { + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Profile": { + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + }, + "Id": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + }, + "PackagingGroupId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + } + }, + "required": [ + "DashManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaStore::Container": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -63519,6 +64762,9 @@ var CloudformationSchema = `{ "EngineVersion": { "type": "string" }, + "GlobalClusterIdentifier": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -67351,7 +68597,6 @@ var CloudformationSchema = `{ } }, "required": [ - "EventThreshold", "Status" ], "type": "object" @@ -67523,6 +68768,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -67787,13 +69044,13 @@ var CloudformationSchema = `{ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } }, - "required": [ - "SseKmsEncryptedObjects" - ], "type": "object" }, "AWS::S3::Bucket.SseKmsEncryptedObjects": { @@ -68755,6 +70012,9 @@ var CloudformationSchema = `{ "Region": { "type": "string" }, + "SubscriptionRoleArn": { + "type": "string" + }, "TopicArn": { "type": "string" } @@ -68824,6 +70084,9 @@ var CloudformationSchema = `{ "DisplayName": { "type": "string" }, + "FifoTopic": { + "type": "boolean" + }, "KmsMasterKeyId": { "type": "string" }, @@ -70862,6 +72125,9 @@ var CloudformationSchema = `{ "Image": { "type": "string" }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + }, "Mode": { "type": "string" }, @@ -70874,6 +72140,18 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::SageMaker::Model.ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -74344,6 +75622,12 @@ var CloudformationSchema = `{ }, "type": "array" }, + "SecurityGroupIds": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.SecurityGroupId" + }, + "type": "array" + }, "SubnetIds": { "items": { "type": "string" @@ -74380,6 +75664,11 @@ var CloudformationSchema = `{ "properties": {}, "type": "object" }, + "AWS::Transfer::Server.SecurityGroupId": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Transfer::User": { "additionalProperties": false, "properties": { @@ -79464,6 +80753,21 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup" }, + { + "$ref": "#/definitions/AWS::MediaPackage::Asset" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup" + }, { "$ref": "#/definitions/AWS::MediaStore::Container" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 64e89596d9..3fb8ddab46 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -513,9 +513,6 @@ "HostInstanceType": { "type": "string" }, - "LdapMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapMetadata" - }, "LdapServerMetadata": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" }, @@ -620,40 +617,6 @@ ], "type": "object" }, - "AWS::AmazonMQ::Broker.InterBrokerCred": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LdapMetadata": { - "additionalProperties": false, - "properties": { - "InterBrokerCreds": { - "items": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.InterBrokerCred" - }, - "type": "array" - }, - "ServerMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.ServerMetadata" - } - }, - "required": [ - "ServerMetadata" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.LdapServerMetadata": { "additionalProperties": false, "properties": { @@ -737,57 +700,6 @@ ], "type": "object" }, - "AWS::AmazonMQ::Broker.ServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "RoleBase", - "RoleSearchMatching", - "ServiceAccountPassword", - "ServiceAccountUsername", - "UserBase", - "UserSearchMatching" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.TagsEntry": { "additionalProperties": false, "properties": { @@ -9475,6 +9387,9 @@ "ApiId": { "type": "string" }, + "ApiKeyId": { + "type": "string" + }, "Description": { "type": "string" }, @@ -9813,6 +9728,9 @@ }, "ResponseMappingTemplateS3Location": { "type": "string" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" } }, "required": [ @@ -9844,6 +9762,33 @@ ], "type": "object" }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { @@ -11075,6 +11020,9 @@ }, "QueryString": { "type": "string" + }, + "WorkGroup": { + "type": "string" } }, "required": [ @@ -11330,6 +11278,9 @@ }, "type": "array" }, + "CapacityRebalance": { + "type": "boolean" + }, "Cooldown": { "type": "string" }, @@ -11499,6 +11450,9 @@ "InstanceType": { "type": "string" }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, "WeightedCapacity": { "type": "string" } @@ -11702,6 +11656,9 @@ "LaunchConfigurationName": { "type": "string" }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOption" + }, "PlacementTenancy": { "type": "string" }, @@ -11793,6 +11750,21 @@ ], "type": "object" }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOption": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { @@ -12864,6 +12836,9 @@ "State": { "type": "string" }, + "Tags": { + "type": "object" + }, "Type": { "type": "string" } @@ -13028,6 +13003,9 @@ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "Tags": { + "type": "object" + }, "Timeout": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, @@ -13434,6 +13412,9 @@ }, "State": { "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ @@ -15529,6 +15510,9 @@ "OriginPath": { "type": "string" }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + }, "S3OriginConfig": { "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } @@ -15636,6 +15620,21 @@ ], "type": "object" }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::Distribution.Restrictions": { "additionalProperties": false, "properties": { @@ -27776,6 +27775,9 @@ "Properties": { "additionalProperties": false, "properties": { + "CarrierGatewayId": { + "type": "string" + }, "DestinationCidrBlock": { "type": "string" }, @@ -27791,6 +27793,9 @@ "InstanceId": { "type": "string" }, + "LocalGatewayId": { + "type": "string" + }, "NatGatewayId": { "type": "string" }, @@ -27803,6 +27808,9 @@ "TransitGatewayId": { "type": "string" }, + "VpcEndpointId": { + "type": "string" + }, "VpcPeeringConnectionId": { "type": "string" } @@ -28781,6 +28789,9 @@ "MapPublicIpOnLaunch": { "type": "boolean" }, + "OutpostArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -33345,9 +33356,15 @@ "KerberosAttributes": { "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, "LogUri": { "type": "string" }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + }, "Name": { "type": "string" }, @@ -33363,6 +33380,9 @@ "ServiceRole": { "type": "string" }, + "StepConcurrencyLevel": { + "type": "number" + }, "Steps": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" @@ -33512,6 +33532,32 @@ ], "type": "object" }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "type": "number" + }, + "MinimumCapacityUnits": { + "type": "number" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, "AWS::EMR::Cluster.Configuration": { "additionalProperties": false, "properties": { @@ -33620,13 +33666,13 @@ "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::Cluster.InstanceGroupConfig": { @@ -33796,6 +33842,15 @@ }, "type": "object" }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.MetricDimension": { "additionalProperties": false, "properties": { @@ -33812,6 +33867,18 @@ ], "type": "object" }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::Cluster.PlacementType": { "additionalProperties": false, "properties": { @@ -33929,6 +33996,9 @@ "AWS::EMR::Cluster.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34124,13 +34194,13 @@ "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { @@ -34163,9 +34233,24 @@ ], "type": "object" }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34987,6 +35072,9 @@ "EngineVersion": { "type": "string" }, + "GlobalReplicationGroupId": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -36149,9 +36237,7 @@ }, "required": [ "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "LoadBalancerArn" ], "type": "object" }, @@ -37000,6 +37086,9 @@ "AllocationId": { "type": "string" }, + "IPv6Address": { + "type": "string" + }, "PrivateIPv4Address": { "type": "string" }, @@ -37134,9 +37223,6 @@ "type": "string" } }, - "required": [ - "HttpCode" - ], "type": "object" }, "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { @@ -37365,6 +37451,15 @@ "InstanceType": { "type": "string" }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, "ZoneAwarenessConfig": { "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" }, @@ -38097,6 +38192,15 @@ }, "type": "object" }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Events::Rule.EcsParameters": { "additionalProperties": false, "properties": { @@ -38196,6 +38300,46 @@ }, "type": "object" }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Events::Rule.RunCommandParameters": { "additionalProperties": false, "properties": { @@ -38251,6 +38395,9 @@ "BatchParameters": { "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + }, "EcsParameters": { "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" }, @@ -38272,6 +38419,12 @@ "KinesisParameters": { "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + }, "RoleArn": { "type": "string" }, @@ -39436,6 +39589,9 @@ "Description": { "type": "string" }, + "FlexMatchMode": { + "type": "string" + }, "GameProperties": { "items": { "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" @@ -39466,7 +39622,6 @@ }, "required": [ "AcceptanceRequired", - "GameSessionQueueArns", "Name", "RequestTimeoutSeconds", "RuleSetName" @@ -51934,6 +52089,9 @@ "Properties": { "additionalProperties": false, "properties": { + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + }, "DeliveryStreamName": { "type": "string" }, @@ -51960,6 +52118,12 @@ }, "SplunkDestinationConfiguration": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" @@ -52047,6 +52211,21 @@ }, "type": "object" }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, "AWS::KinesisFirehose::DeliveryStream.Deserializer": { "additionalProperties": false, "properties": { @@ -53298,6 +53477,18 @@ "ParallelizationFactor": { "type": "number" }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" + }, + "type": "array" + }, "StartingPosition": { "type": "string" }, @@ -53353,6 +53544,18 @@ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "URI": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::Function": { "additionalProperties": false, "properties": { @@ -54001,6 +54204,9 @@ "Properties": { "additionalProperties": false, "properties": { + "KmsKeyId": { + "type": "string" + }, "LogGroupName": { "type": "string" }, @@ -58213,7 +58419,7 @@ }, "type": "object" }, - "AWS::MediaStore::Container": { + "AWS::MediaPackage::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -58245,246 +58451,45 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { + "EgressEndpoints": { "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" }, "type": "array" }, - "LifecyclePolicy": { + "Id": { "type": "string" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { + "PackagingGroupId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ContainerName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::MediaStore::Container" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { + "ResourceId": { "type": "string" }, - "SnapshotIdentifier": { + "SourceArn": { "type": "string" }, - "SourceDBClusterIdentifier": { + "SourceRoleArn": { "type": "string" }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, + "required": [ + "Id", + "PackagingGroupId", + "SourceArn", + "SourceRoleArn" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MediaPackage::Asset" ], "type": "string" }, @@ -58498,26 +58503,1264 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBCluster.DBClusterRole": { + "AWS::MediaPackage::Asset.EgressEndpoint": { "additionalProperties": false, "properties": { - "FeatureName": { + "PackagingConfigurationId": { "type": "string" }, - "RoleArn": { + "Url": { "type": "string" } }, "required": [ - "RoleArn" + "PackagingConfigurationId", + "Url" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MediaPackage::Channel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "additionalProperties": false, + "properties": { + "ingestEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + }, + "Id": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + }, + "Origination": { + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeDelaySeconds": { + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::OriginEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.AdTriggers": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + }, + "ManifestLayout": { + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Profile": { + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + }, + "Id": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + }, + "PackagingGroupId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + } + }, + "required": [ + "DashManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaStore::Container": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -63516,6 +64759,9 @@ "EngineVersion": { "type": "string" }, + "GlobalClusterIdentifier": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -67348,7 +68594,6 @@ } }, "required": [ - "EventThreshold", "Status" ], "type": "object" @@ -67520,6 +68765,18 @@ }, "type": "object" }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -67784,13 +69041,13 @@ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } }, - "required": [ - "SseKmsEncryptedObjects" - ], "type": "object" }, "AWS::S3::Bucket.SseKmsEncryptedObjects": { @@ -68752,6 +70009,9 @@ "Region": { "type": "string" }, + "SubscriptionRoleArn": { + "type": "string" + }, "TopicArn": { "type": "string" } @@ -68821,6 +70081,9 @@ "DisplayName": { "type": "string" }, + "FifoTopic": { + "type": "boolean" + }, "KmsMasterKeyId": { "type": "string" }, @@ -70859,6 +72122,9 @@ "Image": { "type": "string" }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + }, "Mode": { "type": "string" }, @@ -70871,6 +72137,18 @@ }, "type": "object" }, + "AWS::SageMaker::Model.ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -74341,6 +75619,12 @@ }, "type": "array" }, + "SecurityGroupIds": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.SecurityGroupId" + }, + "type": "array" + }, "SubnetIds": { "items": { "type": "string" @@ -74377,6 +75661,11 @@ "properties": {}, "type": "object" }, + "AWS::Transfer::Server.SecurityGroupId": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Transfer::User": { "additionalProperties": false, "properties": { @@ -79461,6 +80750,21 @@ { "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup" }, + { + "$ref": "#/definitions/AWS::MediaPackage::Asset" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup" + }, { "$ref": "#/definitions/AWS::MediaStore::Container" }, diff --git a/schema/sam.go b/schema/sam.go index b07f5d451a..7779e29d52 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -516,9 +516,6 @@ var SamSchema = `{ "HostInstanceType": { "type": "string" }, - "LdapMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapMetadata" - }, "LdapServerMetadata": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" }, @@ -623,40 +620,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AmazonMQ::Broker.InterBrokerCred": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LdapMetadata": { - "additionalProperties": false, - "properties": { - "InterBrokerCreds": { - "items": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.InterBrokerCred" - }, - "type": "array" - }, - "ServerMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.ServerMetadata" - } - }, - "required": [ - "ServerMetadata" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.LdapServerMetadata": { "additionalProperties": false, "properties": { @@ -740,57 +703,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::AmazonMQ::Broker.ServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "RoleBase", - "RoleSearchMatching", - "ServiceAccountPassword", - "ServiceAccountUsername", - "UserBase", - "UserSearchMatching" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.TagsEntry": { "additionalProperties": false, "properties": { @@ -9478,6 +9390,9 @@ var SamSchema = `{ "ApiId": { "type": "string" }, + "ApiKeyId": { + "type": "string" + }, "Description": { "type": "string" }, @@ -9816,6 +9731,9 @@ var SamSchema = `{ }, "ResponseMappingTemplateS3Location": { "type": "string" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" } }, "required": [ @@ -9847,6 +9765,33 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { @@ -11078,6 +11023,9 @@ var SamSchema = `{ }, "QueryString": { "type": "string" + }, + "WorkGroup": { + "type": "string" } }, "required": [ @@ -11333,6 +11281,9 @@ var SamSchema = `{ }, "type": "array" }, + "CapacityRebalance": { + "type": "boolean" + }, "Cooldown": { "type": "string" }, @@ -11502,6 +11453,9 @@ var SamSchema = `{ "InstanceType": { "type": "string" }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, "WeightedCapacity": { "type": "string" } @@ -11705,6 +11659,9 @@ var SamSchema = `{ "LaunchConfigurationName": { "type": "string" }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOption" + }, "PlacementTenancy": { "type": "string" }, @@ -11796,6 +11753,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOption": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { @@ -12867,6 +12839,9 @@ var SamSchema = `{ "State": { "type": "string" }, + "Tags": { + "type": "object" + }, "Type": { "type": "string" } @@ -13031,6 +13006,9 @@ var SamSchema = `{ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "Tags": { + "type": "object" + }, "Timeout": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, @@ -13437,6 +13415,9 @@ var SamSchema = `{ }, "State": { "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ @@ -15532,6 +15513,9 @@ var SamSchema = `{ "OriginPath": { "type": "string" }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + }, "S3OriginConfig": { "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } @@ -15639,6 +15623,21 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::Distribution.Restrictions": { "additionalProperties": false, "properties": { @@ -27779,6 +27778,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "CarrierGatewayId": { + "type": "string" + }, "DestinationCidrBlock": { "type": "string" }, @@ -27794,6 +27796,9 @@ var SamSchema = `{ "InstanceId": { "type": "string" }, + "LocalGatewayId": { + "type": "string" + }, "NatGatewayId": { "type": "string" }, @@ -27806,6 +27811,9 @@ var SamSchema = `{ "TransitGatewayId": { "type": "string" }, + "VpcEndpointId": { + "type": "string" + }, "VpcPeeringConnectionId": { "type": "string" } @@ -28784,6 +28792,9 @@ var SamSchema = `{ "MapPublicIpOnLaunch": { "type": "boolean" }, + "OutpostArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -33348,9 +33359,15 @@ var SamSchema = `{ "KerberosAttributes": { "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, "LogUri": { "type": "string" }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + }, "Name": { "type": "string" }, @@ -33366,6 +33383,9 @@ var SamSchema = `{ "ServiceRole": { "type": "string" }, + "StepConcurrencyLevel": { + "type": "number" + }, "Steps": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" @@ -33515,6 +33535,32 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "type": "number" + }, + "MinimumCapacityUnits": { + "type": "number" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, "AWS::EMR::Cluster.Configuration": { "additionalProperties": false, "properties": { @@ -33623,13 +33669,13 @@ var SamSchema = `{ "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::Cluster.InstanceGroupConfig": { @@ -33799,6 +33845,15 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.MetricDimension": { "additionalProperties": false, "properties": { @@ -33815,6 +33870,18 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::Cluster.PlacementType": { "additionalProperties": false, "properties": { @@ -33932,6 +33999,9 @@ var SamSchema = `{ "AWS::EMR::Cluster.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34127,13 +34197,13 @@ var SamSchema = `{ "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { @@ -34166,9 +34236,24 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34990,6 +35075,9 @@ var SamSchema = `{ "EngineVersion": { "type": "string" }, + "GlobalReplicationGroupId": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -36152,9 +36240,7 @@ var SamSchema = `{ }, "required": [ "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "LoadBalancerArn" ], "type": "object" }, @@ -37003,6 +37089,9 @@ var SamSchema = `{ "AllocationId": { "type": "string" }, + "IPv6Address": { + "type": "string" + }, "PrivateIPv4Address": { "type": "string" }, @@ -37137,9 +37226,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "HttpCode" - ], "type": "object" }, "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { @@ -37368,6 +37454,15 @@ var SamSchema = `{ "InstanceType": { "type": "string" }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, "ZoneAwarenessConfig": { "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" }, @@ -38100,6 +38195,15 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Events::Rule.EcsParameters": { "additionalProperties": false, "properties": { @@ -38199,6 +38303,46 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Events::Rule.RunCommandParameters": { "additionalProperties": false, "properties": { @@ -38254,6 +38398,9 @@ var SamSchema = `{ "BatchParameters": { "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + }, "EcsParameters": { "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" }, @@ -38275,6 +38422,12 @@ var SamSchema = `{ "KinesisParameters": { "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + }, "RoleArn": { "type": "string" }, @@ -39439,6 +39592,9 @@ var SamSchema = `{ "Description": { "type": "string" }, + "FlexMatchMode": { + "type": "string" + }, "GameProperties": { "items": { "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" @@ -39469,7 +39625,6 @@ var SamSchema = `{ }, "required": [ "AcceptanceRequired", - "GameSessionQueueArns", "Name", "RequestTimeoutSeconds", "RuleSetName" @@ -51937,6 +52092,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + }, "DeliveryStreamName": { "type": "string" }, @@ -51963,6 +52121,12 @@ var SamSchema = `{ }, "SplunkDestinationConfiguration": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" @@ -52050,6 +52214,21 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, "AWS::KinesisFirehose::DeliveryStream.Deserializer": { "additionalProperties": false, "properties": { @@ -53301,6 +53480,18 @@ var SamSchema = `{ "ParallelizationFactor": { "type": "number" }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" + }, + "type": "array" + }, "StartingPosition": { "type": "string" }, @@ -53356,6 +53547,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "URI": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::Function": { "additionalProperties": false, "properties": { @@ -54004,6 +54207,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "KmsKeyId": { + "type": "string" + }, "LogGroupName": { "type": "string" }, @@ -58216,7 +58422,7 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::MediaStore::Container": { + "AWS::MediaPackage::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -58248,246 +58454,45 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { + "EgressEndpoints": { "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" }, "type": "array" }, - "LifecyclePolicy": { + "Id": { "type": "string" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { + "PackagingGroupId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ContainerName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::MediaStore::Container" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { + "ResourceId": { "type": "string" }, - "SnapshotIdentifier": { + "SourceArn": { "type": "string" }, - "SourceDBClusterIdentifier": { + "SourceRoleArn": { "type": "string" }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, + "required": [ + "Id", + "PackagingGroupId", + "SourceArn", + "SourceRoleArn" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MediaPackage::Asset" ], "type": "string" }, @@ -58501,26 +58506,1264 @@ var SamSchema = `{ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBCluster.DBClusterRole": { + "AWS::MediaPackage::Asset.EgressEndpoint": { "additionalProperties": false, "properties": { - "FeatureName": { + "PackagingConfigurationId": { "type": "string" }, - "RoleArn": { + "Url": { "type": "string" } }, "required": [ - "RoleArn" + "PackagingConfigurationId", + "Url" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MediaPackage::Channel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "additionalProperties": false, + "properties": { + "ingestEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + }, + "Id": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + }, + "Origination": { + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeDelaySeconds": { + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::OriginEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.AdTriggers": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + }, + "ManifestLayout": { + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Profile": { + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + }, + "Id": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + }, + "PackagingGroupId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + } + }, + "required": [ + "DashManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaStore::Container": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -63519,6 +64762,9 @@ var SamSchema = `{ "EngineVersion": { "type": "string" }, + "GlobalClusterIdentifier": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -67351,7 +68597,6 @@ var SamSchema = `{ } }, "required": [ - "EventThreshold", "Status" ], "type": "object" @@ -67523,6 +68768,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -67787,13 +69044,13 @@ var SamSchema = `{ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } }, - "required": [ - "SseKmsEncryptedObjects" - ], "type": "object" }, "AWS::S3::Bucket.SseKmsEncryptedObjects": { @@ -68755,6 +70012,9 @@ var SamSchema = `{ "Region": { "type": "string" }, + "SubscriptionRoleArn": { + "type": "string" + }, "TopicArn": { "type": "string" } @@ -68824,6 +70084,9 @@ var SamSchema = `{ "DisplayName": { "type": "string" }, + "FifoTopic": { + "type": "boolean" + }, "KmsMasterKeyId": { "type": "string" }, @@ -70862,6 +72125,9 @@ var SamSchema = `{ "Image": { "type": "string" }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + }, "Mode": { "type": "string" }, @@ -70874,6 +72140,18 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::SageMaker::Model.ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -76145,6 +77423,12 @@ var SamSchema = `{ }, "type": "array" }, + "SecurityGroupIds": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.SecurityGroupId" + }, + "type": "array" + }, "SubnetIds": { "items": { "type": "string" @@ -76181,6 +77465,11 @@ var SamSchema = `{ "properties": {}, "type": "object" }, + "AWS::Transfer::Server.SecurityGroupId": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Transfer::User": { "additionalProperties": false, "properties": { @@ -81265,6 +82554,21 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup" }, + { + "$ref": "#/definitions/AWS::MediaPackage::Asset" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup" + }, { "$ref": "#/definitions/AWS::MediaStore::Container" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 91a9523413..c28ff43fd7 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -513,9 +513,6 @@ "HostInstanceType": { "type": "string" }, - "LdapMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapMetadata" - }, "LdapServerMetadata": { "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" }, @@ -620,40 +617,6 @@ ], "type": "object" }, - "AWS::AmazonMQ::Broker.InterBrokerCred": { - "additionalProperties": false, - "properties": { - "Password": { - "type": "string" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Password", - "Username" - ], - "type": "object" - }, - "AWS::AmazonMQ::Broker.LdapMetadata": { - "additionalProperties": false, - "properties": { - "InterBrokerCreds": { - "items": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.InterBrokerCred" - }, - "type": "array" - }, - "ServerMetadata": { - "$ref": "#/definitions/AWS::AmazonMQ::Broker.ServerMetadata" - } - }, - "required": [ - "ServerMetadata" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.LdapServerMetadata": { "additionalProperties": false, "properties": { @@ -737,57 +700,6 @@ ], "type": "object" }, - "AWS::AmazonMQ::Broker.ServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "RoleBase", - "RoleSearchMatching", - "ServiceAccountPassword", - "ServiceAccountUsername", - "UserBase", - "UserSearchMatching" - ], - "type": "object" - }, "AWS::AmazonMQ::Broker.TagsEntry": { "additionalProperties": false, "properties": { @@ -9475,6 +9387,9 @@ "ApiId": { "type": "string" }, + "ApiKeyId": { + "type": "string" + }, "Description": { "type": "string" }, @@ -9813,6 +9728,9 @@ }, "ResponseMappingTemplateS3Location": { "type": "string" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" } }, "required": [ @@ -9844,6 +9762,33 @@ ], "type": "object" }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, "AWS::AppSync::GraphQLApi": { "additionalProperties": false, "properties": { @@ -11075,6 +11020,9 @@ }, "QueryString": { "type": "string" + }, + "WorkGroup": { + "type": "string" } }, "required": [ @@ -11330,6 +11278,9 @@ }, "type": "array" }, + "CapacityRebalance": { + "type": "boolean" + }, "Cooldown": { "type": "string" }, @@ -11499,6 +11450,9 @@ "InstanceType": { "type": "string" }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, "WeightedCapacity": { "type": "string" } @@ -11702,6 +11656,9 @@ "LaunchConfigurationName": { "type": "string" }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOption" + }, "PlacementTenancy": { "type": "string" }, @@ -11793,6 +11750,21 @@ ], "type": "object" }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOption": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, "AWS::AutoScaling::LifecycleHook": { "additionalProperties": false, "properties": { @@ -12864,6 +12836,9 @@ "State": { "type": "string" }, + "Tags": { + "type": "object" + }, "Type": { "type": "string" } @@ -13028,6 +13003,9 @@ "RetryStrategy": { "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" }, + "Tags": { + "type": "object" + }, "Timeout": { "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" }, @@ -13434,6 +13412,9 @@ }, "State": { "type": "string" + }, + "Tags": { + "type": "object" } }, "required": [ @@ -15529,6 +15510,9 @@ "OriginPath": { "type": "string" }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + }, "S3OriginConfig": { "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" } @@ -15636,6 +15620,21 @@ ], "type": "object" }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, "AWS::CloudFront::Distribution.Restrictions": { "additionalProperties": false, "properties": { @@ -27776,6 +27775,9 @@ "Properties": { "additionalProperties": false, "properties": { + "CarrierGatewayId": { + "type": "string" + }, "DestinationCidrBlock": { "type": "string" }, @@ -27791,6 +27793,9 @@ "InstanceId": { "type": "string" }, + "LocalGatewayId": { + "type": "string" + }, "NatGatewayId": { "type": "string" }, @@ -27803,6 +27808,9 @@ "TransitGatewayId": { "type": "string" }, + "VpcEndpointId": { + "type": "string" + }, "VpcPeeringConnectionId": { "type": "string" } @@ -28781,6 +28789,9 @@ "MapPublicIpOnLaunch": { "type": "boolean" }, + "OutpostArn": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -33345,9 +33356,15 @@ "KerberosAttributes": { "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, "LogUri": { "type": "string" }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + }, "Name": { "type": "string" }, @@ -33363,6 +33380,9 @@ "ServiceRole": { "type": "string" }, + "StepConcurrencyLevel": { + "type": "number" + }, "Steps": { "items": { "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" @@ -33512,6 +33532,32 @@ ], "type": "object" }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "type": "number" + }, + "MinimumCapacityUnits": { + "type": "number" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, "AWS::EMR::Cluster.Configuration": { "additionalProperties": false, "properties": { @@ -33620,13 +33666,13 @@ "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::Cluster.InstanceGroupConfig": { @@ -33796,6 +33842,15 @@ }, "type": "object" }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + } + }, + "type": "object" + }, "AWS::EMR::Cluster.MetricDimension": { "additionalProperties": false, "properties": { @@ -33812,6 +33867,18 @@ ], "type": "object" }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::Cluster.PlacementType": { "additionalProperties": false, "properties": { @@ -33929,6 +33996,9 @@ "AWS::EMR::Cluster.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34124,13 +34194,13 @@ "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { "additionalProperties": false, "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + }, "SpotSpecification": { "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" } }, - "required": [ - "SpotSpecification" - ], "type": "object" }, "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { @@ -34163,9 +34233,24 @@ ], "type": "object" }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { "additionalProperties": false, "properties": { + "AllocationStrategy": { + "type": "string" + }, "BlockDurationMinutes": { "type": "number" }, @@ -34987,6 +35072,9 @@ "EngineVersion": { "type": "string" }, + "GlobalReplicationGroupId": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -36149,9 +36237,7 @@ }, "required": [ "DefaultActions", - "LoadBalancerArn", - "Port", - "Protocol" + "LoadBalancerArn" ], "type": "object" }, @@ -37000,6 +37086,9 @@ "AllocationId": { "type": "string" }, + "IPv6Address": { + "type": "string" + }, "PrivateIPv4Address": { "type": "string" }, @@ -37134,9 +37223,6 @@ "type": "string" } }, - "required": [ - "HttpCode" - ], "type": "object" }, "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { @@ -37365,6 +37451,15 @@ "InstanceType": { "type": "string" }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, "ZoneAwarenessConfig": { "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" }, @@ -38097,6 +38192,15 @@ }, "type": "object" }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Events::Rule.EcsParameters": { "additionalProperties": false, "properties": { @@ -38196,6 +38300,46 @@ }, "type": "object" }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, "AWS::Events::Rule.RunCommandParameters": { "additionalProperties": false, "properties": { @@ -38251,6 +38395,9 @@ "BatchParameters": { "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + }, "EcsParameters": { "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" }, @@ -38272,6 +38419,12 @@ "KinesisParameters": { "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + }, "RoleArn": { "type": "string" }, @@ -39436,6 +39589,9 @@ "Description": { "type": "string" }, + "FlexMatchMode": { + "type": "string" + }, "GameProperties": { "items": { "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" @@ -39466,7 +39622,6 @@ }, "required": [ "AcceptanceRequired", - "GameSessionQueueArns", "Name", "RequestTimeoutSeconds", "RuleSetName" @@ -51934,6 +52089,9 @@ "Properties": { "additionalProperties": false, "properties": { + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + }, "DeliveryStreamName": { "type": "string" }, @@ -51960,6 +52118,12 @@ }, "SplunkDestinationConfiguration": { "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "type": "object" @@ -52047,6 +52211,21 @@ }, "type": "object" }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, "AWS::KinesisFirehose::DeliveryStream.Deserializer": { "additionalProperties": false, "properties": { @@ -53298,6 +53477,18 @@ "ParallelizationFactor": { "type": "number" }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" + }, + "type": "array" + }, "StartingPosition": { "type": "string" }, @@ -53353,6 +53544,18 @@ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "URI": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::Function": { "additionalProperties": false, "properties": { @@ -54001,6 +54204,9 @@ "Properties": { "additionalProperties": false, "properties": { + "KmsKeyId": { + "type": "string" + }, "LogGroupName": { "type": "string" }, @@ -58213,7 +58419,7 @@ }, "type": "object" }, - "AWS::MediaStore::Container": { + "AWS::MediaPackage::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -58245,246 +58451,45 @@ "Properties": { "additionalProperties": false, "properties": { - "AccessLoggingEnabled": { - "type": "boolean" - }, - "ContainerName": { - "type": "string" - }, - "CorsPolicy": { + "EgressEndpoints": { "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" }, "type": "array" }, - "LifecyclePolicy": { + "Id": { "type": "string" }, - "MetricPolicy": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" - }, - "Policy": { + "PackagingGroupId": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "required": [ - "ContainerName" - ], - "type": "object" - }, - "Type": { - "enum": [ - "AWS::MediaStore::Container" - ], - "type": "string" - }, - "UpdateReplacePolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - } - }, - "required": [ - "Type", - "Properties" - ], - "type": "object" - }, - "AWS::MediaStore::Container.CorsRule": { - "additionalProperties": false, - "properties": { - "AllowedHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedMethods": { - "items": { - "type": "string" - }, - "type": "array" - }, - "AllowedOrigins": { - "items": { - "type": "string" - }, - "type": "array" - }, - "ExposeHeaders": { - "items": { - "type": "string" - }, - "type": "array" - }, - "MaxAgeSeconds": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicy": { - "additionalProperties": false, - "properties": { - "ContainerLevelMetrics": { - "type": "string" - }, - "MetricPolicyRules": { - "items": { - "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" - }, - "type": "array" - } - }, - "required": [ - "ContainerLevelMetrics" - ], - "type": "object" - }, - "AWS::MediaStore::Container.MetricPolicyRule": { - "additionalProperties": false, - "properties": { - "ObjectGroup": { - "type": "string" - }, - "ObjectGroupName": { - "type": "string" - } - }, - "required": [ - "ObjectGroup", - "ObjectGroupName" - ], - "type": "object" - }, - "AWS::Neptune::DBCluster": { - "additionalProperties": false, - "properties": { - "DeletionPolicy": { - "enum": [ - "Delete", - "Retain", - "Snapshot" - ], - "type": "string" - }, - "DependsOn": { - "anyOf": [ - { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - { - "items": { - "pattern": "^[a-zA-Z0-9]+$", - "type": "string" - }, - "type": "array" - } - ] - }, - "Metadata": { - "type": "object" - }, - "Properties": { - "additionalProperties": false, - "properties": { - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" - }, - "type": "array" - }, - "AvailabilityZones": { - "items": { - "type": "string" - }, - "type": "array" - }, - "BackupRetentionPeriod": { - "type": "number" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterParameterGroupName": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DeletionProtection": { - "type": "boolean" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EngineVersion": { - "type": "string" - }, - "IamAuthEnabled": { - "type": "boolean" - }, - "KmsKeyId": { - "type": "string" - }, - "Port": { - "type": "number" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "RestoreToTime": { - "type": "string" - }, - "RestoreType": { + "ResourceId": { "type": "string" }, - "SnapshotIdentifier": { + "SourceArn": { "type": "string" }, - "SourceDBClusterIdentifier": { + "SourceRoleArn": { "type": "string" }, - "StorageEncrypted": { - "type": "boolean" - }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, "type": "array" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VpcSecurityGroupIds": { - "items": { - "type": "string" - }, - "type": "array" } }, + "required": [ + "Id", + "PackagingGroupId", + "SourceArn", + "SourceRoleArn" + ], "type": "object" }, "Type": { "enum": [ - "AWS::Neptune::DBCluster" + "AWS::MediaPackage::Asset" ], "type": "string" }, @@ -58498,26 +58503,1264 @@ } }, "required": [ - "Type" + "Type", + "Properties" ], "type": "object" }, - "AWS::Neptune::DBCluster.DBClusterRole": { + "AWS::MediaPackage::Asset.EgressEndpoint": { "additionalProperties": false, "properties": { - "FeatureName": { + "PackagingConfigurationId": { "type": "string" }, - "RoleArn": { + "Url": { "type": "string" } }, "required": [ - "RoleArn" + "PackagingConfigurationId", + "Url" ], "type": "object" }, - "AWS::Neptune::DBClusterParameterGroup": { + "AWS::MediaPackage::Channel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "additionalProperties": false, + "properties": { + "ingestEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + }, + "Id": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + }, + "Origination": { + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeDelaySeconds": { + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::OriginEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.AdTriggers": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + }, + "ManifestLayout": { + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Profile": { + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + }, + "Id": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + }, + "PackagingGroupId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + } + }, + "required": [ + "DashManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "type": "object" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaStore::Container": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -63516,6 +64759,9 @@ "EngineVersion": { "type": "string" }, + "GlobalClusterIdentifier": { + "type": "string" + }, "KmsKeyId": { "type": "string" }, @@ -67348,7 +68594,6 @@ } }, "required": [ - "EventThreshold", "Status" ], "type": "object" @@ -67520,6 +68765,18 @@ }, "type": "object" }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -67784,13 +69041,13 @@ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } }, - "required": [ - "SseKmsEncryptedObjects" - ], "type": "object" }, "AWS::S3::Bucket.SseKmsEncryptedObjects": { @@ -68752,6 +70009,9 @@ "Region": { "type": "string" }, + "SubscriptionRoleArn": { + "type": "string" + }, "TopicArn": { "type": "string" } @@ -68821,6 +70081,9 @@ "DisplayName": { "type": "string" }, + "FifoTopic": { + "type": "boolean" + }, "KmsMasterKeyId": { "type": "string" }, @@ -70859,6 +72122,9 @@ "Image": { "type": "string" }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + }, "Mode": { "type": "string" }, @@ -70871,6 +72137,18 @@ }, "type": "object" }, + "AWS::SageMaker::Model.ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, "AWS::SageMaker::Model.VpcConfig": { "additionalProperties": false, "properties": { @@ -76142,6 +77420,12 @@ }, "type": "array" }, + "SecurityGroupIds": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.SecurityGroupId" + }, + "type": "array" + }, "SubnetIds": { "items": { "type": "string" @@ -76178,6 +77462,11 @@ "properties": {}, "type": "object" }, + "AWS::Transfer::Server.SecurityGroupId": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Transfer::User": { "additionalProperties": false, "properties": { @@ -81262,6 +82551,21 @@ { "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup" }, + { + "$ref": "#/definitions/AWS::MediaPackage::Asset" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup" + }, { "$ref": "#/definitions/AWS::MediaStore::Container" },