From 5e99a5976008b51e52de86b246505e51be881b24 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 10:31:41 +0200 Subject: [PATCH] fix(schema): CloudFormation Updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: RĂºben Fonseca --- cloudformation/all.go | 75 ++++ ...ackup-backupplan_backupruleresourcetype.go | 5 + ...oudformation-stackset_deploymenttargets.go | 5 + .../ec2/aws-ec2-instanceconnectendpoint.go | 138 +++++++ cloudformation/ecr/aws-ecr-repository.go | 5 + .../events/aws-events-connection.go | 8 +- ...aws-fsx-filesystem_openzfsconfiguration.go | 15 + ...aws-fsx-filesystem_windowsconfiguration.go | 5 + .../aws-mediatailor-sourcelocation.go | 143 +++++++ ...ilor-sourcelocation_accessconfiguration.go | 42 +++ ...ion_defaultsegmentdeliveryconfiguration.go | 37 ++ ...tailor-sourcelocation_httpconfiguration.go | 37 ++ ..._secretsmanageraccesstokenconfiguration.go | 47 +++ ...celocation_segmentdeliveryconfiguration.go | 42 +++ .../aws-route53resolver-outpostresolver.go | 138 +++++++ schema/cdk.go | 352 +++++++++++++++++- schema/cdk.schema.json | 352 +++++++++++++++++- schema/cloudformation.go | 352 +++++++++++++++++- schema/cloudformation.schema.json | 352 +++++++++++++++++- schema/sam.go | 352 +++++++++++++++++- schema/sam.schema.json | 352 +++++++++++++++++- 21 files changed, 2814 insertions(+), 40 deletions(-) create mode 100644 cloudformation/ec2/aws-ec2-instanceconnectendpoint.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation_accessconfiguration.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation_defaultsegmentdeliveryconfiguration.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation_httpconfiguration.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation_secretsmanageraccesstokenconfiguration.go create mode 100644 cloudformation/mediatailor/aws-mediatailor-sourcelocation_segmentdeliveryconfiguration.go create mode 100644 cloudformation/route53resolver/aws-route53resolver-outpostresolver.go diff --git a/cloudformation/all.go b/cloudformation/all.go index ec3e694465..474f42a391 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -556,6 +556,7 @@ func AllResources() map[string]Resource { "AWS::EC2::IPAMResourceDiscoveryAssociation": &ec2.IPAMResourceDiscoveryAssociation{}, "AWS::EC2::IPAMScope": &ec2.IPAMScope{}, "AWS::EC2::Instance": &ec2.Instance{}, + "AWS::EC2::InstanceConnectEndpoint": &ec2.InstanceConnectEndpoint{}, "AWS::EC2::InternetGateway": &ec2.InternetGateway{}, "AWS::EC2::KeyPair": &ec2.KeyPair{}, "AWS::EC2::LaunchTemplate": &ec2.LaunchTemplate{}, @@ -981,6 +982,7 @@ func AllResources() map[string]Resource { "AWS::MediaTailor::ChannelPolicy": &mediatailor.ChannelPolicy{}, "AWS::MediaTailor::LiveSource": &mediatailor.LiveSource{}, "AWS::MediaTailor::PlaybackConfiguration": &mediatailor.PlaybackConfiguration{}, + "AWS::MediaTailor::SourceLocation": &mediatailor.SourceLocation{}, "AWS::MediaTailor::VodSource": &mediatailor.VodSource{}, "AWS::MemoryDB::ACL": &memorydb.ACL{}, "AWS::MemoryDB::Cluster": &memorydb.Cluster{}, @@ -1155,6 +1157,7 @@ func AllResources() map[string]Resource { "AWS::Route53Resolver::FirewallDomainList": &route53resolver.FirewallDomainList{}, "AWS::Route53Resolver::FirewallRuleGroup": &route53resolver.FirewallRuleGroup{}, "AWS::Route53Resolver::FirewallRuleGroupAssociation": &route53resolver.FirewallRuleGroupAssociation{}, + "AWS::Route53Resolver::OutpostResolver": &route53resolver.OutpostResolver{}, "AWS::Route53Resolver::ResolverConfig": &route53resolver.ResolverConfig{}, "AWS::Route53Resolver::ResolverDNSSECConfig": &route53resolver.ResolverDNSSECConfig{}, "AWS::Route53Resolver::ResolverEndpoint": &route53resolver.ResolverEndpoint{}, @@ -9113,6 +9116,30 @@ func (t *Template) GetEC2InstanceWithName(name string) (*ec2.Instance, error) { return nil, fmt.Errorf("resource %q of type ec2.Instance not found", name) } +// GetAllEC2InstanceConnectEndpointResources retrieves all ec2.InstanceConnectEndpoint items from an AWS CloudFormation template +func (t *Template) GetAllEC2InstanceConnectEndpointResources() map[string]*ec2.InstanceConnectEndpoint { + results := map[string]*ec2.InstanceConnectEndpoint{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ec2.InstanceConnectEndpoint: + results[name] = resource + } + } + return results +} + +// GetEC2InstanceConnectEndpointWithName retrieves all ec2.InstanceConnectEndpoint items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetEC2InstanceConnectEndpointWithName(name string) (*ec2.InstanceConnectEndpoint, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ec2.InstanceConnectEndpoint: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ec2.InstanceConnectEndpoint not found", name) +} + // GetAllEC2InternetGatewayResources retrieves all ec2.InternetGateway items from an AWS CloudFormation template func (t *Template) GetAllEC2InternetGatewayResources() map[string]*ec2.InternetGateway { results := map[string]*ec2.InternetGateway{} @@ -19313,6 +19340,30 @@ func (t *Template) GetMediaTailorPlaybackConfigurationWithName(name string) (*me return nil, fmt.Errorf("resource %q of type mediatailor.PlaybackConfiguration not found", name) } +// GetAllMediaTailorSourceLocationResources retrieves all mediatailor.SourceLocation items from an AWS CloudFormation template +func (t *Template) GetAllMediaTailorSourceLocationResources() map[string]*mediatailor.SourceLocation { + results := map[string]*mediatailor.SourceLocation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *mediatailor.SourceLocation: + results[name] = resource + } + } + return results +} + +// GetMediaTailorSourceLocationWithName retrieves all mediatailor.SourceLocation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetMediaTailorSourceLocationWithName(name string) (*mediatailor.SourceLocation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *mediatailor.SourceLocation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type mediatailor.SourceLocation not found", name) +} + // GetAllMediaTailorVodSourceResources retrieves all mediatailor.VodSource items from an AWS CloudFormation template func (t *Template) GetAllMediaTailorVodSourceResources() map[string]*mediatailor.VodSource { results := map[string]*mediatailor.VodSource{} @@ -23489,6 +23540,30 @@ func (t *Template) GetRoute53ResolverFirewallRuleGroupAssociationWithName(name s return nil, fmt.Errorf("resource %q of type route53resolver.FirewallRuleGroupAssociation not found", name) } +// GetAllRoute53ResolverOutpostResolverResources retrieves all route53resolver.OutpostResolver items from an AWS CloudFormation template +func (t *Template) GetAllRoute53ResolverOutpostResolverResources() map[string]*route53resolver.OutpostResolver { + results := map[string]*route53resolver.OutpostResolver{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *route53resolver.OutpostResolver: + results[name] = resource + } + } + return results +} + +// GetRoute53ResolverOutpostResolverWithName retrieves all route53resolver.OutpostResolver items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRoute53ResolverOutpostResolverWithName(name string) (*route53resolver.OutpostResolver, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *route53resolver.OutpostResolver: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type route53resolver.OutpostResolver not found", name) +} + // GetAllRoute53ResolverResolverConfigResources retrieves all route53resolver.ResolverConfig items from an AWS CloudFormation template func (t *Template) GetAllRoute53ResolverResolverConfigResources() map[string]*route53resolver.ResolverConfig { results := map[string]*route53resolver.ResolverConfig{} diff --git a/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go b/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go index 1327710f17..7288174ac6 100644 --- a/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go +++ b/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go @@ -45,6 +45,11 @@ type BackupPlan_BackupRuleResourceType struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-scheduleexpression ScheduleExpression *string `json:"ScheduleExpression,omitempty"` + // ScheduleExpressionTimezone AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-scheduleexpressiontimezone + ScheduleExpressionTimezone *string `json:"ScheduleExpressionTimezone,omitempty"` + // StartWindowMinutes AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-startwindowminutes diff --git a/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go b/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go index 26329f9250..8a09375c67 100644 --- a/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go +++ b/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go @@ -20,6 +20,11 @@ type StackSet_DeploymentTargets struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accounts Accounts []string `json:"Accounts,omitempty"` + // AccountsUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accountsurl + AccountsUrl *string `json:"AccountsUrl,omitempty"` + // OrganizationalUnitIds AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-organizationalunitids diff --git a/cloudformation/ec2/aws-ec2-instanceconnectendpoint.go b/cloudformation/ec2/aws-ec2-instanceconnectendpoint.go new file mode 100644 index 0000000000..4ef0859ed9 --- /dev/null +++ b/cloudformation/ec2/aws-ec2-instanceconnectendpoint.go @@ -0,0 +1,138 @@ +// Code generated by "go generate". Please don't change this file directly. + +package ec2 + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// InstanceConnectEndpoint AWS CloudFormation Resource (AWS::EC2::InstanceConnectEndpoint) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html +type InstanceConnectEndpoint struct { + + // ClientToken AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-clienttoken + ClientToken *string `json:"ClientToken,omitempty"` + + // PreserveClientIp AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-preserveclientip + PreserveClientIp *bool `json:"PreserveClientIp,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-securitygroupids + SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + + // SubnetId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-subnetid + SubnetId string `json:"SubnetId"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-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 *InstanceConnectEndpoint) AWSCloudFormationType() string { + return "AWS::EC2::InstanceConnectEndpoint" +} + +// 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 InstanceConnectEndpoint) MarshalJSON() ([]byte, error) { + type Properties InstanceConnectEndpoint + 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 *InstanceConnectEndpoint) UnmarshalJSON(b []byte) error { + type Properties InstanceConnectEndpoint + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = InstanceConnectEndpoint(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/ecr/aws-ecr-repository.go b/cloudformation/ecr/aws-ecr-repository.go index 9d8fca28fa..1b38c430cd 100644 --- a/cloudformation/ecr/aws-ecr-repository.go +++ b/cloudformation/ecr/aws-ecr-repository.go @@ -14,6 +14,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html type Repository struct { + // EmptyOnDelete AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-emptyondelete + EmptyOnDelete *bool `json:"EmptyOnDelete,omitempty"` + // EncryptionConfiguration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-encryptionconfiguration diff --git a/cloudformation/events/aws-events-connection.go b/cloudformation/events/aws-events-connection.go index 7fd08149e5..f701aa5891 100644 --- a/cloudformation/events/aws-events-connection.go +++ b/cloudformation/events/aws-events-connection.go @@ -14,14 +14,14 @@ import ( type Connection struct { // AuthParameters AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authparameters - AuthParameters *Connection_AuthParameters `json:"AuthParameters"` + AuthParameters *Connection_AuthParameters `json:"AuthParameters,omitempty"` // AuthorizationType AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authorizationtype - AuthorizationType string `json:"AuthorizationType"` + AuthorizationType *string `json:"AuthorizationType,omitempty"` // Description AWS CloudFormation Property // Required: false diff --git a/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go index f1a9620465..ada0ea5e6c 100644 --- a/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go +++ b/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go @@ -40,16 +40,31 @@ type FileSystem_OpenZFSConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration DiskIopsConfiguration *FileSystem_DiskIopsConfiguration `json:"DiskIopsConfiguration,omitempty"` + // EndpointIpAddressRange AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-endpointipaddressrange + EndpointIpAddressRange *string `json:"EndpointIpAddressRange,omitempty"` + // Options AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-options Options []string `json:"Options,omitempty"` + // PreferredSubnetId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-preferredsubnetid + PreferredSubnetId *string `json:"PreferredSubnetId,omitempty"` + // RootVolumeConfiguration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration RootVolumeConfiguration *FileSystem_RootVolumeConfiguration `json:"RootVolumeConfiguration,omitempty"` + // RouteTableIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-routetableids + RouteTableIds []string `json:"RouteTableIds,omitempty"` + // ThroughputCapacity AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-throughputcapacity diff --git a/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go b/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go index cb47dea836..72002ff374 100644 --- a/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go +++ b/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go @@ -45,6 +45,11 @@ type FileSystem_WindowsConfiguration struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-deploymenttype DeploymentType *string `json:"DeploymentType,omitempty"` + // DiskIopsConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-diskiopsconfiguration + DiskIopsConfiguration *FileSystem_DiskIopsConfiguration `json:"DiskIopsConfiguration,omitempty"` + // PreferredSubnetId AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-preferredsubnetid diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation.go new file mode 100644 index 0000000000..eee5b9fa01 --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation.go @@ -0,0 +1,143 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// SourceLocation AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html +type SourceLocation struct { + + // AccessConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-accessconfiguration + AccessConfiguration *SourceLocation_AccessConfiguration `json:"AccessConfiguration,omitempty"` + + // DefaultSegmentDeliveryConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-defaultsegmentdeliveryconfiguration + DefaultSegmentDeliveryConfiguration *SourceLocation_DefaultSegmentDeliveryConfiguration `json:"DefaultSegmentDeliveryConfiguration,omitempty"` + + // HttpConfiguration AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-httpconfiguration + HttpConfiguration *SourceLocation_HttpConfiguration `json:"HttpConfiguration"` + + // SegmentDeliveryConfigurations AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-segmentdeliveryconfigurations + SegmentDeliveryConfigurations []SourceLocation_SegmentDeliveryConfiguration `json:"SegmentDeliveryConfigurations,omitempty"` + + // SourceLocationName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-sourcelocationname + SourceLocationName string `json:"SourceLocationName"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediatailor-sourcelocation.html#cfn-mediatailor-sourcelocation-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 *SourceLocation) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation" +} + +// 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 SourceLocation) MarshalJSON() ([]byte, error) { + type Properties SourceLocation + 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 *SourceLocation) UnmarshalJSON(b []byte) error { + type Properties SourceLocation + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = SourceLocation(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation_accessconfiguration.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_accessconfiguration.go new file mode 100644 index 0000000000..0413f38ad2 --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_accessconfiguration.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// SourceLocation_AccessConfiguration AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation.AccessConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-accessconfiguration.html +type SourceLocation_AccessConfiguration struct { + + // AccessType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-accessconfiguration.html#cfn-mediatailor-sourcelocation-accessconfiguration-accesstype + AccessType *string `json:"AccessType,omitempty"` + + // SecretsManagerAccessTokenConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-accessconfiguration.html#cfn-mediatailor-sourcelocation-accessconfiguration-secretsmanageraccesstokenconfiguration + SecretsManagerAccessTokenConfiguration *SourceLocation_SecretsManagerAccessTokenConfiguration `json:"SecretsManagerAccessTokenConfiguration,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 *SourceLocation_AccessConfiguration) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation.AccessConfiguration" +} diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation_defaultsegmentdeliveryconfiguration.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_defaultsegmentdeliveryconfiguration.go new file mode 100644 index 0000000000..171da2680c --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_defaultsegmentdeliveryconfiguration.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// SourceLocation_DefaultSegmentDeliveryConfiguration AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-defaultsegmentdeliveryconfiguration.html +type SourceLocation_DefaultSegmentDeliveryConfiguration struct { + + // BaseUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-defaultsegmentdeliveryconfiguration.html#cfn-mediatailor-sourcelocation-defaultsegmentdeliveryconfiguration-baseurl + BaseUrl *string `json:"BaseUrl,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 *SourceLocation_DefaultSegmentDeliveryConfiguration) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" +} diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation_httpconfiguration.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_httpconfiguration.go new file mode 100644 index 0000000000..4a981fcc1b --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_httpconfiguration.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// SourceLocation_HttpConfiguration AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation.HttpConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-httpconfiguration.html +type SourceLocation_HttpConfiguration struct { + + // BaseUrl AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-httpconfiguration.html#cfn-mediatailor-sourcelocation-httpconfiguration-baseurl + BaseUrl string `json:"BaseUrl"` + + // 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 *SourceLocation_HttpConfiguration) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation.HttpConfiguration" +} diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation_secretsmanageraccesstokenconfiguration.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_secretsmanageraccesstokenconfiguration.go new file mode 100644 index 0000000000..903026abd0 --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_secretsmanageraccesstokenconfiguration.go @@ -0,0 +1,47 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// SourceLocation_SecretsManagerAccessTokenConfiguration AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration.html +type SourceLocation_SecretsManagerAccessTokenConfiguration struct { + + // HeaderName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration.html#cfn-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration-headername + HeaderName *string `json:"HeaderName,omitempty"` + + // SecretArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration.html#cfn-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration-secretarn + SecretArn *string `json:"SecretArn,omitempty"` + + // SecretStringKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration.html#cfn-mediatailor-sourcelocation-secretsmanageraccesstokenconfiguration-secretstringkey + SecretStringKey *string `json:"SecretStringKey,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 *SourceLocation_SecretsManagerAccessTokenConfiguration) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" +} diff --git a/cloudformation/mediatailor/aws-mediatailor-sourcelocation_segmentdeliveryconfiguration.go b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_segmentdeliveryconfiguration.go new file mode 100644 index 0000000000..14d5644ec4 --- /dev/null +++ b/cloudformation/mediatailor/aws-mediatailor-sourcelocation_segmentdeliveryconfiguration.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package mediatailor + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// SourceLocation_SegmentDeliveryConfiguration AWS CloudFormation Resource (AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-segmentdeliveryconfiguration.html +type SourceLocation_SegmentDeliveryConfiguration struct { + + // BaseUrl AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-segmentdeliveryconfiguration.html#cfn-mediatailor-sourcelocation-segmentdeliveryconfiguration-baseurl + BaseUrl *string `json:"BaseUrl,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediatailor-sourcelocation-segmentdeliveryconfiguration.html#cfn-mediatailor-sourcelocation-segmentdeliveryconfiguration-name + Name *string `json:"Name,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 *SourceLocation_SegmentDeliveryConfiguration) AWSCloudFormationType() string { + return "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" +} diff --git a/cloudformation/route53resolver/aws-route53resolver-outpostresolver.go b/cloudformation/route53resolver/aws-route53resolver-outpostresolver.go new file mode 100644 index 0000000000..2323bdd204 --- /dev/null +++ b/cloudformation/route53resolver/aws-route53resolver-outpostresolver.go @@ -0,0 +1,138 @@ +// Code generated by "go generate". Please don't change this file directly. + +package route53resolver + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// OutpostResolver AWS CloudFormation Resource (AWS::Route53Resolver::OutpostResolver) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html +type OutpostResolver struct { + + // InstanceCount AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html#cfn-route53resolver-outpostresolver-instancecount + InstanceCount *int `json:"InstanceCount,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html#cfn-route53resolver-outpostresolver-name + Name string `json:"Name"` + + // OutpostArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html#cfn-route53resolver-outpostresolver-outpostarn + OutpostArn string `json:"OutpostArn"` + + // PreferredInstanceType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html#cfn-route53resolver-outpostresolver-preferredinstancetype + PreferredInstanceType string `json:"PreferredInstanceType"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-outpostresolver.html#cfn-route53resolver-outpostresolver-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 *OutpostResolver) AWSCloudFormationType() string { + return "AWS::Route53Resolver::OutpostResolver" +} + +// 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 OutpostResolver) MarshalJSON() ([]byte, error) { + type Properties OutpostResolver + 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 *OutpostResolver) UnmarshalJSON(b []byte) error { + type Properties OutpostResolver + res := &struct { + Type string + Properties *Properties + DependsOn interface{} + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = OutpostResolver(*res.Properties) + } + if res.DependsOn != nil { + switch obj := res.DependsOn.(type) { + case string: + r.AWSCloudFormationDependsOn = []string{obj} + case []interface{}: + s := make([]string, 0, len(obj)) + for _, v := range obj { + if value, ok := v.(string); ok { + s = append(s, value) + } + } + r.AWSCloudFormationDependsOn = s + } + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/schema/cdk.go b/schema/cdk.go index d03c282656..2b1b77d747 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -19297,6 +19297,9 @@ var CdkSchema = `{ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -25008,6 +25011,9 @@ var CdkSchema = `{ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49982,6 +49988,89 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58219,6 +58308,9 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67360,10 +67452,6 @@ var CdkSchema = `{ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67382,8 +67470,7 @@ var CdkSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70220,15 +70307,27 @@ var CdkSchema = `{ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70340,6 +70439,9 @@ var CdkSchema = `{ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117817,6 +117919,153 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167232,6 +167481,88 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -196921,6 +197252,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -198196,6 +198530,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -198718,6 +199055,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 8755ecf4ab..ae7bb333ff 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -19292,6 +19292,9 @@ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -25003,6 +25006,9 @@ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49977,6 +49983,89 @@ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58214,6 +58303,9 @@ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67355,10 +67447,6 @@ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67377,8 +67465,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70215,15 +70302,27 @@ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70335,6 +70434,9 @@ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117812,6 +117914,153 @@ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167227,6 +167476,88 @@ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -196916,6 +197247,9 @@ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -198191,6 +198525,9 @@ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -198713,6 +199050,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 2020c9b413..0735964efe 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -19297,6 +19297,9 @@ var CloudformationSchema = `{ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -24947,6 +24950,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49921,6 +49927,89 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58158,6 +58247,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67299,10 +67391,6 @@ var CloudformationSchema = `{ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67321,8 +67409,7 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70159,15 +70246,27 @@ var CloudformationSchema = `{ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70279,6 +70378,9 @@ var CloudformationSchema = `{ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117756,6 +117858,153 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167171,6 +167420,88 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -196857,6 +197188,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -198132,6 +198466,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -198654,6 +198991,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 8c05ae3a84..a0df21cf00 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -19292,6 +19292,9 @@ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -24942,6 +24945,9 @@ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49916,6 +49922,89 @@ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58153,6 +58242,9 @@ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67294,10 +67386,6 @@ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67316,8 +67404,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70154,15 +70241,27 @@ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70274,6 +70373,9 @@ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117751,6 +117853,153 @@ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167166,6 +167415,88 @@ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -196852,6 +197183,9 @@ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -198127,6 +198461,9 @@ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -198649,6 +198986,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" }, diff --git a/schema/sam.go b/schema/sam.go index 3b17a158de..d69281c321 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -19297,6 +19297,9 @@ var SamSchema = `{ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -24947,6 +24950,9 @@ var SamSchema = `{ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49921,6 +49927,89 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58158,6 +58247,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67299,10 +67391,6 @@ var SamSchema = `{ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67321,8 +67409,7 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70159,15 +70246,27 @@ var SamSchema = `{ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70279,6 +70378,9 @@ var SamSchema = `{ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117756,6 +117858,153 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167171,6 +167420,88 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -199858,6 +200189,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -201133,6 +201467,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -201655,6 +201992,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index de005ec36f..506a4b049d 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -19292,6 +19292,9 @@ "ScheduleExpression": { "type": "string" }, + "ScheduleExpressionTimezone": { + "type": "string" + }, "StartWindowMinutes": { "type": "number" }, @@ -24942,6 +24945,9 @@ }, "type": "array" }, + "AccountsUrl": { + "type": "string" + }, "OrganizationalUnitIds": { "items": { "type": "string" @@ -49916,6 +49922,89 @@ ], "type": "object" }, + "AWS::EC2::InstanceConnectEndpoint": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ClientToken": { + "type": "string" + }, + "PreserveClientIp": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InstanceConnectEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::EC2::InternetGateway": { "additionalProperties": false, "properties": { @@ -58153,6 +58242,9 @@ "Properties": { "additionalProperties": false, "properties": { + "EmptyOnDelete": { + "type": "boolean" + }, "EncryptionConfiguration": { "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" }, @@ -67294,10 +67386,6 @@ "type": "string" } }, - "required": [ - "AuthParameters", - "AuthorizationType" - ], "type": "object" }, "Type": { @@ -67316,8 +67404,7 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, @@ -70154,15 +70241,27 @@ "DiskIopsConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" }, + "EndpointIpAddressRange": { + "type": "string" + }, "Options": { "items": { "type": "string" }, "type": "array" }, + "PreferredSubnetId": { + "type": "string" + }, "RootVolumeConfiguration": { "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, "ThroughputCapacity": { "type": "number" }, @@ -70274,6 +70373,9 @@ "DeploymentType": { "type": "string" }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, "PreferredSubnetId": { "type": "string" }, @@ -117751,6 +117853,153 @@ }, "type": "object" }, + "AWS::MediaTailor::SourceLocation": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.AccessConfiguration" + }, + "DefaultSegmentDeliveryConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration" + }, + "HttpConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.HttpConfiguration" + }, + "SegmentDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration" + }, + "type": "array" + }, + "SourceLocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "HttpConfiguration", + "SourceLocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::SourceLocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.AccessConfiguration": { + "additionalProperties": false, + "properties": { + "AccessType": { + "type": "string" + }, + "SecretsManagerAccessTokenConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.DefaultSegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.HttpConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + } + }, + "required": [ + "BaseUrl" + ], + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SecretsManagerAccessTokenConfiguration": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "SecretStringKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::SourceLocation.SegmentDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "BaseUrl": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, "AWS::MediaTailor::VodSource": { "additionalProperties": false, "properties": { @@ -167166,6 +167415,88 @@ ], "type": "object" }, + "AWS::Route53Resolver::OutpostResolver": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "OutpostArn", + "PreferredInstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::OutpostResolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::Route53Resolver::ResolverConfig": { "additionalProperties": false, "properties": { @@ -199853,6 +200184,9 @@ { "$ref": "#/definitions/AWS::EC2::Instance" }, + { + "$ref": "#/definitions/AWS::EC2::InstanceConnectEndpoint" + }, { "$ref": "#/definitions/AWS::EC2::InternetGateway" }, @@ -201128,6 +201462,9 @@ { "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" }, + { + "$ref": "#/definitions/AWS::MediaTailor::SourceLocation" + }, { "$ref": "#/definitions/AWS::MediaTailor::VodSource" }, @@ -201650,6 +201987,9 @@ { "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" }, + { + "$ref": "#/definitions/AWS::Route53Resolver::OutpostResolver" + }, { "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" },