diff --git a/cloudformation/all.go b/cloudformation/all.go index cbdc53dab1..2083547e79 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -163,6 +163,7 @@ import ( "github.com/awslabs/goformation/v6/cloudformation/resiliencehub" "github.com/awslabs/goformation/v6/cloudformation/resourcegroups" "github.com/awslabs/goformation/v6/cloudformation/robomaker" + "github.com/awslabs/goformation/v6/cloudformation/rolesanywhere" "github.com/awslabs/goformation/v6/cloudformation/route53" "github.com/awslabs/goformation/v6/cloudformation/route53recoverycontrol" "github.com/awslabs/goformation/v6/cloudformation/route53recoveryreadiness" @@ -959,6 +960,7 @@ func AllResources() map[string]Resource { "AWS::Redshift::EventSubscription": &redshift.EventSubscription{}, "AWS::Redshift::ScheduledAction": &redshift.ScheduledAction{}, "AWS::RedshiftServerless::Namespace": &redshiftserverless.Namespace{}, + "AWS::RedshiftServerless::Workgroup": &redshiftserverless.Workgroup{}, "AWS::RefactorSpaces::Application": &refactorspaces.Application{}, "AWS::RefactorSpaces::Environment": &refactorspaces.Environment{}, "AWS::RefactorSpaces::Route": &refactorspaces.Route{}, @@ -975,6 +977,8 @@ func AllResources() map[string]Resource { "AWS::RoboMaker::RobotApplicationVersion": &robomaker.RobotApplicationVersion{}, "AWS::RoboMaker::SimulationApplication": &robomaker.SimulationApplication{}, "AWS::RoboMaker::SimulationApplicationVersion": &robomaker.SimulationApplicationVersion{}, + "AWS::RolesAnywhere::Profile": &rolesanywhere.Profile{}, + "AWS::RolesAnywhere::TrustAnchor": &rolesanywhere.TrustAnchor{}, "AWS::Route53::CidrCollection": &route53.CidrCollection{}, "AWS::Route53::DNSSEC": &route53.DNSSEC{}, "AWS::Route53::HealthCheck": &route53.HealthCheck{}, @@ -19251,6 +19255,30 @@ func (t *Template) GetRedshiftServerlessNamespaceWithName(name string) (*redshif return nil, fmt.Errorf("resource %q of type redshiftserverless.Namespace not found", name) } +// GetAllRedshiftServerlessWorkgroupResources retrieves all redshiftserverless.Workgroup items from an AWS CloudFormation template +func (t *Template) GetAllRedshiftServerlessWorkgroupResources() map[string]*redshiftserverless.Workgroup { + results := map[string]*redshiftserverless.Workgroup{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *redshiftserverless.Workgroup: + results[name] = resource + } + } + return results +} + +// GetRedshiftServerlessWorkgroupWithName retrieves all redshiftserverless.Workgroup items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRedshiftServerlessWorkgroupWithName(name string) (*redshiftserverless.Workgroup, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *redshiftserverless.Workgroup: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type redshiftserverless.Workgroup not found", name) +} + // GetAllRefactorSpacesApplicationResources retrieves all refactorspaces.Application items from an AWS CloudFormation template func (t *Template) GetAllRefactorSpacesApplicationResources() map[string]*refactorspaces.Application { results := map[string]*refactorspaces.Application{} @@ -19635,6 +19663,54 @@ func (t *Template) GetRoboMakerSimulationApplicationVersionWithName(name string) return nil, fmt.Errorf("resource %q of type robomaker.SimulationApplicationVersion not found", name) } +// GetAllRolesAnywhereProfileResources retrieves all rolesanywhere.Profile items from an AWS CloudFormation template +func (t *Template) GetAllRolesAnywhereProfileResources() map[string]*rolesanywhere.Profile { + results := map[string]*rolesanywhere.Profile{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *rolesanywhere.Profile: + results[name] = resource + } + } + return results +} + +// GetRolesAnywhereProfileWithName retrieves all rolesanywhere.Profile items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRolesAnywhereProfileWithName(name string) (*rolesanywhere.Profile, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *rolesanywhere.Profile: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type rolesanywhere.Profile not found", name) +} + +// GetAllRolesAnywhereTrustAnchorResources retrieves all rolesanywhere.TrustAnchor items from an AWS CloudFormation template +func (t *Template) GetAllRolesAnywhereTrustAnchorResources() map[string]*rolesanywhere.TrustAnchor { + results := map[string]*rolesanywhere.TrustAnchor{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *rolesanywhere.TrustAnchor: + results[name] = resource + } + } + return results +} + +// GetRolesAnywhereTrustAnchorWithName retrieves all rolesanywhere.TrustAnchor items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetRolesAnywhereTrustAnchorWithName(name string) (*rolesanywhere.TrustAnchor, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *rolesanywhere.TrustAnchor: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type rolesanywhere.TrustAnchor not found", name) +} + // GetAllRoute53CidrCollectionResources retrieves all route53.CidrCollection items from an AWS CloudFormation template func (t *Template) GetAllRoute53CidrCollectionResources() map[string]*route53.CidrCollection { results := map[string]*route53.CidrCollection{} diff --git a/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go b/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go index 22bb3322d1..7c796f4113 100644 --- a/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go +++ b/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go @@ -10,6 +10,11 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html type StackSet_DeploymentTargets struct { + // AccountFilterType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accountfiltertype + AccountFilterType *string `json:"AccountFilterType,omitempty"` + // Accounts AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accounts diff --git a/cloudformation/iot/aws-iot-cacertificate.go b/cloudformation/iot/aws-iot-cacertificate.go index 8eae84a35c..26dd8acfdc 100644 --- a/cloudformation/iot/aws-iot-cacertificate.go +++ b/cloudformation/iot/aws-iot-cacertificate.go @@ -21,9 +21,14 @@ type CACertificate struct { AutoRegistrationStatus *string `json:"AutoRegistrationStatus,omitempty"` // CACertificatePem AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html#cfn-iot-cacertificate-cacertificatepem - CACertificatePem *string `json:"CACertificatePem,omitempty"` + CACertificatePem string `json:"CACertificatePem"` + + // CertificateMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-cacertificate.html#cfn-iot-cacertificate-certificatemode + CertificateMode *string `json:"CertificateMode,omitempty"` // RegistrationConfig AWS CloudFormation Property // Required: false diff --git a/cloudformation/logs/aws-logs-metricfilter.go b/cloudformation/logs/aws-logs-metricfilter.go index 60d11a9395..f6ffc708cf 100644 --- a/cloudformation/logs/aws-logs-metricfilter.go +++ b/cloudformation/logs/aws-logs-metricfilter.go @@ -14,19 +14,24 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html type MetricFilter struct { + // FilterName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filtername + FilterName *string `json:"FilterName,omitempty"` + // FilterPattern AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-filterpattern + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filterpattern FilterPattern string `json:"FilterPattern"` // LogGroupName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-loggroupname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-loggroupname LogGroupName string `json:"LogGroupName"` // MetricTransformations AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-metrictransformations + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-metrictransformations MetricTransformations []MetricFilter_MetricTransformation `json:"MetricTransformations"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy diff --git a/cloudformation/logs/aws-logs-metricfilter_dimension.go b/cloudformation/logs/aws-logs-metricfilter_dimension.go new file mode 100644 index 0000000000..8c2c39c168 --- /dev/null +++ b/cloudformation/logs/aws-logs-metricfilter_dimension.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package logs + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// MetricFilter_Dimension AWS CloudFormation Resource (AWS::Logs::MetricFilter.Dimension) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html +type MetricFilter_Dimension struct { + + // Key AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-key + Key string `json:"Key"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-value + Value string `json:"Value"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *MetricFilter_Dimension) AWSCloudFormationType() string { + return "AWS::Logs::MetricFilter.Dimension" +} diff --git a/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go b/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go index a91a4c3ff1..19f2d74951 100644 --- a/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go +++ b/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go @@ -12,24 +12,34 @@ type MetricFilter_MetricTransformation struct { // DefaultValue AWS CloudFormation Property // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-defaultvalue + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-defaultvalue DefaultValue *float64 `json:"DefaultValue,omitempty"` + // Dimensions AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-dimensions + Dimensions *[]MetricFilter_Dimension `json:"Dimensions,omitempty"` + // MetricName AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricname + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricname MetricName string `json:"MetricName"` // MetricNamespace AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricnamespace + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricnamespace MetricNamespace string `json:"MetricNamespace"` // MetricValue AWS CloudFormation Property // Required: true - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricvalue + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricvalue MetricValue string `json:"MetricValue"` + // Unit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-unit + Unit *string `json:"Unit,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/redshiftserverless/aws-redshiftserverless-workgroup.go b/cloudformation/redshiftserverless/aws-redshiftserverless-workgroup.go new file mode 100644 index 0000000000..8fabda58cf --- /dev/null +++ b/cloudformation/redshiftserverless/aws-redshiftserverless-workgroup.go @@ -0,0 +1,160 @@ +// Code generated by "go generate". Please don't change this file directly. + +package redshiftserverless + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" + "github.com/awslabs/goformation/v6/cloudformation/tags" +) + +// Workgroup AWS CloudFormation Resource (AWS::RedshiftServerless::Workgroup) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html +type Workgroup struct { + + // BaseCapacity AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-basecapacity + BaseCapacity *int `json:"BaseCapacity,omitempty"` + + // ConfigParameters AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-configparameters + ConfigParameters *[]Workgroup_ConfigParameter `json:"ConfigParameters,omitempty"` + + // EnhancedVpcRouting AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-enhancedvpcrouting + EnhancedVpcRouting *bool `json:"EnhancedVpcRouting,omitempty"` + + // NamespaceName AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-namespacename + NamespaceName *string `json:"NamespaceName,omitempty"` + + // PubliclyAccessible AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-publiclyaccessible + PubliclyAccessible *bool `json:"PubliclyAccessible,omitempty"` + + // SecurityGroupIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-securitygroupids + SecurityGroupIds *[]string `json:"SecurityGroupIds,omitempty"` + + // SubnetIds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-subnetids + SubnetIds *[]string `json:"SubnetIds,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-tags + Tags *[]tags.Tag `json:"Tags,omitempty"` + + // WorkgroupName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshiftserverless-workgroup.html#cfn-redshiftserverless-workgroup-workgroupname + WorkgroupName string `json:"WorkgroupName"` + + // 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 *Workgroup) AWSCloudFormationType() string { + return "AWS::RedshiftServerless::Workgroup" +} + +// 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 Workgroup) MarshalJSON() ([]byte, error) { + type Properties Workgroup + 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 *Workgroup) UnmarshalJSON(b []byte) error { + type Properties Workgroup + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Workgroup(*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/redshiftserverless/aws-redshiftserverless-workgroup_configparameter.go b/cloudformation/redshiftserverless/aws-redshiftserverless-workgroup_configparameter.go new file mode 100644 index 0000000000..4be00f8742 --- /dev/null +++ b/cloudformation/redshiftserverless/aws-redshiftserverless-workgroup_configparameter.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package redshiftserverless + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// Workgroup_ConfigParameter AWS CloudFormation Resource (AWS::RedshiftServerless::Workgroup.ConfigParameter) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html +type Workgroup_ConfigParameter struct { + + // ParameterKey AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html#cfn-redshiftserverless-workgroup-configparameter-parameterkey + ParameterKey *string `json:"ParameterKey,omitempty"` + + // ParameterValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshiftserverless-workgroup-configparameter.html#cfn-redshiftserverless-workgroup-configparameter-parametervalue + ParameterValue *string `json:"ParameterValue,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 *Workgroup_ConfigParameter) AWSCloudFormationType() string { + return "AWS::RedshiftServerless::Workgroup.ConfigParameter" +} diff --git a/cloudformation/rolesanywhere/aws-rolesanywhere-profile.go b/cloudformation/rolesanywhere/aws-rolesanywhere-profile.go new file mode 100644 index 0000000000..91d083d008 --- /dev/null +++ b/cloudformation/rolesanywhere/aws-rolesanywhere-profile.go @@ -0,0 +1,155 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rolesanywhere + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" + "github.com/awslabs/goformation/v6/cloudformation/tags" +) + +// Profile AWS CloudFormation Resource (AWS::RolesAnywhere::Profile) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html +type Profile struct { + + // DurationSeconds AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-durationseconds + DurationSeconds *float64 `json:"DurationSeconds,omitempty"` + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-enabled + Enabled *bool `json:"Enabled,omitempty"` + + // ManagedPolicyArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-managedpolicyarns + ManagedPolicyArns *[]string `json:"ManagedPolicyArns,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-name + Name *string `json:"Name,omitempty"` + + // RequireInstanceProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-requireinstanceproperties + RequireInstanceProperties *bool `json:"RequireInstanceProperties,omitempty"` + + // RoleArns AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-rolearns + RoleArns *[]string `json:"RoleArns,omitempty"` + + // SessionPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-sessionpolicy + SessionPolicy *string `json:"SessionPolicy,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-profile.html#cfn-rolesanywhere-profile-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 *Profile) AWSCloudFormationType() string { + return "AWS::RolesAnywhere::Profile" +} + +// 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 Profile) MarshalJSON() ([]byte, error) { + type Properties Profile + 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 *Profile) UnmarshalJSON(b []byte) error { + type Properties Profile + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Profile(*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/rolesanywhere/aws-rolesanywhere-trustanchor.go b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor.go new file mode 100644 index 0000000000..0ee0bb6d44 --- /dev/null +++ b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor.go @@ -0,0 +1,135 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rolesanywhere + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v6/cloudformation/policies" + "github.com/awslabs/goformation/v6/cloudformation/tags" +) + +// TrustAnchor AWS CloudFormation Resource (AWS::RolesAnywhere::TrustAnchor) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html +type TrustAnchor struct { + + // Enabled AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html#cfn-rolesanywhere-trustanchor-enabled + Enabled *bool `json:"Enabled,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html#cfn-rolesanywhere-trustanchor-name + Name *string `json:"Name,omitempty"` + + // Source AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html#cfn-rolesanywhere-trustanchor-source + Source *TrustAnchor_Source `json:"Source,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rolesanywhere-trustanchor.html#cfn-rolesanywhere-trustanchor-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 *TrustAnchor) AWSCloudFormationType() string { + return "AWS::RolesAnywhere::TrustAnchor" +} + +// 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 TrustAnchor) MarshalJSON() ([]byte, error) { + type Properties TrustAnchor + 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 *TrustAnchor) UnmarshalJSON(b []byte) error { + type Properties TrustAnchor + 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 { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = TrustAnchor(*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/rolesanywhere/aws-rolesanywhere-trustanchor_source.go b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor_source.go new file mode 100644 index 0000000000..bd8c2596c3 --- /dev/null +++ b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor_source.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rolesanywhere + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// TrustAnchor_Source AWS CloudFormation Resource (AWS::RolesAnywhere::TrustAnchor.Source) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rolesanywhere-trustanchor-source.html +type TrustAnchor_Source struct { + + // SourceData AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rolesanywhere-trustanchor-source.html#cfn-rolesanywhere-trustanchor-source-sourcedata + SourceData *interface{} `json:"SourceData,omitempty"` + + // SourceType AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rolesanywhere-trustanchor-source.html#cfn-rolesanywhere-trustanchor-source-sourcetype + SourceType *string `json:"SourceType,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 *TrustAnchor_Source) AWSCloudFormationType() string { + return "AWS::RolesAnywhere::TrustAnchor.Source" +} diff --git a/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor_sourcedata.go b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor_sourcedata.go new file mode 100644 index 0000000000..dbe376e58d --- /dev/null +++ b/cloudformation/rolesanywhere/aws-rolesanywhere-trustanchor_sourcedata.go @@ -0,0 +1,32 @@ +// Code generated by "go generate". Please don't change this file directly. + +package rolesanywhere + +import ( + "github.com/awslabs/goformation/v6/cloudformation/policies" +) + +// TrustAnchor_SourceData AWS CloudFormation Resource (AWS::RolesAnywhere::TrustAnchor.SourceData) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rolesanywhere-trustanchor-sourcedata.html +type TrustAnchor_SourceData struct { + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *TrustAnchor_SourceData) AWSCloudFormationType() string { + return "AWS::RolesAnywhere::TrustAnchor.SourceData" +} diff --git a/cloudformation/ssmincidents/aws-ssmincidents-responseplan_incidenttemplate.go b/cloudformation/ssmincidents/aws-ssmincidents-responseplan_incidenttemplate.go index 6fd8673ab9..53eabc6453 100644 --- a/cloudformation/ssmincidents/aws-ssmincidents-responseplan_incidenttemplate.go +++ b/cloudformation/ssmincidents/aws-ssmincidents-responseplan_incidenttemplate.go @@ -4,6 +4,7 @@ package ssmincidents import ( "github.com/awslabs/goformation/v6/cloudformation/policies" + "github.com/awslabs/goformation/v6/cloudformation/tags" ) // ResponsePlan_IncidentTemplate AWS CloudFormation Resource (AWS::SSMIncidents::ResponsePlan.IncidentTemplate) @@ -20,6 +21,11 @@ type ResponsePlan_IncidentTemplate struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html#cfn-ssmincidents-responseplan-incidenttemplate-impact Impact int `json:"Impact"` + // IncidentTags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html#cfn-ssmincidents-responseplan-incidenttemplate-incidenttags + IncidentTags *[]tags.Tag `json:"IncidentTags,omitempty"` + // NotificationTargets AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmincidents-responseplan-incidenttemplate.html#cfn-ssmincidents-responseplan-incidenttemplate-notificationtargets diff --git a/cloudformation/stepfunctions/aws-stepfunctions-statemachine.go b/cloudformation/stepfunctions/aws-stepfunctions-statemachine.go index abde9f5e8d..db343938e4 100644 --- a/cloudformation/stepfunctions/aws-stepfunctions-statemachine.go +++ b/cloudformation/stepfunctions/aws-stepfunctions-statemachine.go @@ -32,7 +32,7 @@ type StateMachine struct { // DefinitionSubstitutions AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions - DefinitionSubstitutions *map[string]string `json:"DefinitionSubstitutions,omitempty"` + DefinitionSubstitutions *map[string]interface{} `json:"DefinitionSubstitutions,omitempty"` // LoggingConfiguration AWS CloudFormation Property // Required: false diff --git a/schema/cdk.go b/schema/cdk.go index f1fbf71d9a..b971665a51 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -22040,6 +22040,9 @@ var CdkSchema = `{ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73985,6 +73988,9 @@ var CdkSchema = `{ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -74002,6 +74008,7 @@ var CdkSchema = `{ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93507,6 +93514,9 @@ var CdkSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93548,12 +93558,34 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93562,6 +93594,9 @@ var CdkSchema = `{ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115383,6 +115418,119 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117168,6 +117316,187 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125105,6 +125434,12 @@ var CdkSchema = `{ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -133538,7 +133873,7 @@ var CdkSchema = `{ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -142110,6 +142445,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -142158,6 +142496,12 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index df69b71a7a..743512668b 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -22035,6 +22035,9 @@ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73980,6 +73983,9 @@ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -73997,6 +74003,7 @@ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93502,6 +93509,9 @@ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93543,12 +93553,34 @@ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93557,6 +93589,9 @@ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115378,6 +115413,119 @@ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117163,6 +117311,187 @@ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125100,6 +125429,12 @@ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -133533,7 +133868,7 @@ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -142105,6 +142440,9 @@ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -142153,6 +142491,12 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index f8ee1ff5c1..178dfa57f1 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -21979,6 +21979,9 @@ var CloudformationSchema = `{ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73924,6 +73927,9 @@ var CloudformationSchema = `{ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -73941,6 +73947,7 @@ var CloudformationSchema = `{ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93446,6 +93453,9 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93487,12 +93497,34 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93501,6 +93533,9 @@ var CloudformationSchema = `{ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115322,6 +115357,119 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117107,6 +117255,187 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125044,6 +125373,12 @@ var CloudformationSchema = `{ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -133477,7 +133812,7 @@ var CloudformationSchema = `{ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -142046,6 +142381,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -142094,6 +142432,12 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 8167a0de4d..e9478fe100 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -21974,6 +21974,9 @@ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73919,6 +73922,9 @@ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -73936,6 +73942,7 @@ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93441,6 +93448,9 @@ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93482,12 +93492,34 @@ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93496,6 +93528,9 @@ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115317,6 +115352,119 @@ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117102,6 +117250,187 @@ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125039,6 +125368,12 @@ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -133472,7 +133807,7 @@ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -142041,6 +142376,9 @@ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -142089,6 +142427,12 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" }, diff --git a/schema/sam.go b/schema/sam.go index 99fd94daca..b1780f0eaf 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -21979,6 +21979,9 @@ var SamSchema = `{ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73924,6 +73927,9 @@ var SamSchema = `{ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -73941,6 +73947,7 @@ var SamSchema = `{ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93446,6 +93453,9 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93487,12 +93497,34 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93501,6 +93533,9 @@ var SamSchema = `{ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115322,6 +115357,119 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117107,6 +117255,187 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125044,6 +125373,12 @@ var SamSchema = `{ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -136069,7 +136404,7 @@ var SamSchema = `{ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -144927,6 +145262,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -144975,6 +145313,12 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index a108bb0864..035d6f8d5b 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -21974,6 +21974,9 @@ "AWS::CloudFormation::StackSet.DeploymentTargets": { "additionalProperties": false, "properties": { + "AccountFilterType": { + "type": "string" + }, "Accounts": { "items": { "type": "string" @@ -73919,6 +73922,9 @@ "CACertificatePem": { "type": "string" }, + "CertificateMode": { + "type": "string" + }, "RegistrationConfig": { "type": "object" }, @@ -73936,6 +73942,7 @@ } }, "required": [ + "CACertificatePem", "Status" ], "type": "object" @@ -93441,6 +93448,9 @@ "Properties": { "additionalProperties": false, "properties": { + "FilterName": { + "type": "string" + }, "FilterPattern": { "type": "string" }, @@ -93482,12 +93492,34 @@ ], "type": "object" }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, "AWS::Logs::MetricFilter.MetricTransformation": { "additionalProperties": false, "properties": { "DefaultValue": { "type": "number" }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, "MetricName": { "type": "string" }, @@ -93496,6 +93528,9 @@ }, "MetricValue": { "type": "string" + }, + "Unit": { + "type": "string" } }, "required": [ @@ -115317,6 +115352,119 @@ ], "type": "object" }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, "AWS::RefactorSpaces::Application": { "additionalProperties": false, "properties": { @@ -117102,6 +117250,187 @@ ], "type": "object" }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "type": "object" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, "AWS::Route53::CidrCollection": { "additionalProperties": false, "properties": { @@ -125039,6 +125368,12 @@ "Impact": { "type": "number" }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "NotificationTargets": { "items": { "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" @@ -136064,7 +136399,7 @@ "additionalProperties": true, "patternProperties": { "^[a-zA-Z0-9]+$": { - "type": "string" + "type": "object" } }, "type": "object" @@ -144922,6 +145257,9 @@ { "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, { "$ref": "#/definitions/AWS::RefactorSpaces::Application" }, @@ -144970,6 +145308,12 @@ { "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, { "$ref": "#/definitions/AWS::Route53::CidrCollection" },