From 065bf7e1f075d83c47da398ecf31b6d0582165d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 26 Oct 2022 06:07:01 +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 --- .../acmpca/aws-acmpca-certificateauthority.go | 5 + cloudformation/all.go | 25 +++ .../apigatewayv2/aws-apigatewayv2-api.go | 2 +- .../cognito/aws-cognito-userpool.go | 5 + cloudformation/ec2/aws-ec2-flowlog.go | 4 +- ...-ecs-taskdefinition_containerdefinition.go | 8 +- .../fsx/aws-fsx-datarepositoryassociation.go | 148 +++++++++++++ ...arepositoryassociation_autoexportpolicy.go | 37 ++++ ...arepositoryassociation_autoimportpolicy.go | 37 ++++ .../aws-fsx-datarepositoryassociation_s3.go | 42 ++++ .../iot/aws-iot-topicrule_action.go | 5 + .../iot/aws-iot-topicrule_locationaction.go | 62 ++++++ .../iot/aws-iot-topicrule_timestamp.go | 42 ++++ .../iot/aws-iot-topicrule_timestreamaction.go | 5 - schema/cdk.go | 204 +++++++++++++++++- schema/cdk.schema.json | 204 +++++++++++++++++- schema/cloudformation.go | 204 +++++++++++++++++- schema/cloudformation.schema.json | 204 +++++++++++++++++- schema/sam.go | 204 +++++++++++++++++- schema/sam.schema.json | 204 +++++++++++++++++- 20 files changed, 1609 insertions(+), 42 deletions(-) create mode 100644 cloudformation/fsx/aws-fsx-datarepositoryassociation.go create mode 100644 cloudformation/fsx/aws-fsx-datarepositoryassociation_autoexportpolicy.go create mode 100644 cloudformation/fsx/aws-fsx-datarepositoryassociation_autoimportpolicy.go create mode 100644 cloudformation/fsx/aws-fsx-datarepositoryassociation_s3.go create mode 100644 cloudformation/iot/aws-iot-topicrule_locationaction.go create mode 100644 cloudformation/iot/aws-iot-topicrule_timestamp.go diff --git a/cloudformation/acmpca/aws-acmpca-certificateauthority.go b/cloudformation/acmpca/aws-acmpca-certificateauthority.go index 998af9ba19..cb1e866349 100644 --- a/cloudformation/acmpca/aws-acmpca-certificateauthority.go +++ b/cloudformation/acmpca/aws-acmpca-certificateauthority.go @@ -54,6 +54,11 @@ type CertificateAuthority struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-type Type string `json:"Type"` + // UsageMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-usagemode + UsageMode *string `json:"UsageMode,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/all.go b/cloudformation/all.go index d41b28d575..f25f2bd3e6 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -620,6 +620,7 @@ func AllResources() map[string]Resource { "AWS::FIS::ExperimentTemplate": &fis.ExperimentTemplate{}, "AWS::FMS::NotificationChannel": &fms.NotificationChannel{}, "AWS::FMS::Policy": &fms.Policy{}, + "AWS::FSx::DataRepositoryAssociation": &fsx.DataRepositoryAssociation{}, "AWS::FSx::FileSystem": &fsx.FileSystem{}, "AWS::FSx::Snapshot": &fsx.Snapshot{}, "AWS::FSx::StorageVirtualMachine": &fsx.StorageVirtualMachine{}, @@ -11007,6 +11008,30 @@ func (t *Template) GetFMSPolicyWithName(name string) (*fms.Policy, error) { return nil, fmt.Errorf("resource %q of type fms.Policy not found", name) } +// GetAllFSxDataRepositoryAssociationResources retrieves all fsx.DataRepositoryAssociation items from an AWS CloudFormation template +func (t *Template) GetAllFSxDataRepositoryAssociationResources() map[string]*fsx.DataRepositoryAssociation { + results := map[string]*fsx.DataRepositoryAssociation{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *fsx.DataRepositoryAssociation: + results[name] = resource + } + } + return results +} + +// GetFSxDataRepositoryAssociationWithName retrieves all fsx.DataRepositoryAssociation items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetFSxDataRepositoryAssociationWithName(name string) (*fsx.DataRepositoryAssociation, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *fsx.DataRepositoryAssociation: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type fsx.DataRepositoryAssociation not found", name) +} + // GetAllFSxFileSystemResources retrieves all fsx.FileSystem items from an AWS CloudFormation template func (t *Template) GetAllFSxFileSystemResources() map[string]*fsx.FileSystem { results := map[string]*fsx.FileSystem{} diff --git a/cloudformation/apigatewayv2/aws-apigatewayv2-api.go b/cloudformation/apigatewayv2/aws-apigatewayv2-api.go index 841db79359..1045083b45 100644 --- a/cloudformation/apigatewayv2/aws-apigatewayv2-api.go +++ b/cloudformation/apigatewayv2/aws-apigatewayv2-api.go @@ -86,7 +86,7 @@ type Api struct { // Tags AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-tags - Tags interface{} `json:"Tags,omitempty"` + Tags map[string]string `json:"Tags,omitempty"` // Target AWS CloudFormation Property // Required: false diff --git a/cloudformation/cognito/aws-cognito-userpool.go b/cloudformation/cognito/aws-cognito-userpool.go index 77e4e35e6f..65bc68dbd9 100644 --- a/cloudformation/cognito/aws-cognito-userpool.go +++ b/cloudformation/cognito/aws-cognito-userpool.go @@ -33,6 +33,11 @@ type UserPool struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-autoverifiedattributes AutoVerifiedAttributes []string `json:"AutoVerifiedAttributes,omitempty"` + // DeletionProtection AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deletionprotection + DeletionProtection *string `json:"DeletionProtection,omitempty"` + // DeviceConfiguration AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deviceconfiguration diff --git a/cloudformation/ec2/aws-ec2-flowlog.go b/cloudformation/ec2/aws-ec2-flowlog.go index a4582befd2..4417d1eede 100644 --- a/cloudformation/ec2/aws-ec2-flowlog.go +++ b/cloudformation/ec2/aws-ec2-flowlog.go @@ -65,9 +65,9 @@ type FlowLog struct { Tags []tags.Tag `json:"Tags,omitempty"` // TrafficType AWS CloudFormation Property - // Required: true + // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-traffictype - TrafficType string `json:"TrafficType"` + TrafficType *string `json:"TrafficType,omitempty"` // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go b/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go index 6ec39787e1..4e0e853d7a 100644 --- a/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go +++ b/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go @@ -91,9 +91,9 @@ type TaskDefinition_ContainerDefinition struct { Hostname *string `json:"Hostname,omitempty"` // Image AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-image - Image *string `json:"Image,omitempty"` + Image string `json:"Image"` // Interactive AWS CloudFormation Property // Required: false @@ -131,9 +131,9 @@ type TaskDefinition_ContainerDefinition struct { MountPoints []TaskDefinition_MountPoint `json:"MountPoints,omitempty"` // Name AWS CloudFormation Property - // Required: false + // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-name - Name *string `json:"Name,omitempty"` + Name string `json:"Name"` // PortMappings AWS CloudFormation Property // Required: false diff --git a/cloudformation/fsx/aws-fsx-datarepositoryassociation.go b/cloudformation/fsx/aws-fsx-datarepositoryassociation.go new file mode 100644 index 0000000000..66ab7223db --- /dev/null +++ b/cloudformation/fsx/aws-fsx-datarepositoryassociation.go @@ -0,0 +1,148 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "bytes" + "encoding/json" + + "github.com/awslabs/goformation/v7/cloudformation/policies" + "github.com/awslabs/goformation/v7/cloudformation/tags" +) + +// DataRepositoryAssociation AWS CloudFormation Resource (AWS::FSx::DataRepositoryAssociation) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html +type DataRepositoryAssociation struct { + + // BatchImportMetaDataOnCreate AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-batchimportmetadataoncreate + BatchImportMetaDataOnCreate *bool `json:"BatchImportMetaDataOnCreate,omitempty"` + + // DataRepositoryPath AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-datarepositorypath + DataRepositoryPath string `json:"DataRepositoryPath"` + + // FileSystemId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-filesystemid + FileSystemId string `json:"FileSystemId"` + + // FileSystemPath AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-filesystempath + FileSystemPath string `json:"FileSystemPath"` + + // ImportedFileChunkSize AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-importedfilechunksize + ImportedFileChunkSize *int `json:"ImportedFileChunkSize,omitempty"` + + // S3 AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-s3 + S3 *DataRepositoryAssociation_S3 `json:"S3,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-datarepositoryassociation.html#cfn-fsx-datarepositoryassociation-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 *DataRepositoryAssociation) AWSCloudFormationType() string { + return "AWS::FSx::DataRepositoryAssociation" +} + +// 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 DataRepositoryAssociation) MarshalJSON() ([]byte, error) { + type Properties DataRepositoryAssociation + 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 *DataRepositoryAssociation) UnmarshalJSON(b []byte) error { + type Properties DataRepositoryAssociation + 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 = DataRepositoryAssociation(*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/fsx/aws-fsx-datarepositoryassociation_autoexportpolicy.go b/cloudformation/fsx/aws-fsx-datarepositoryassociation_autoexportpolicy.go new file mode 100644 index 0000000000..cff86b4803 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-datarepositoryassociation_autoexportpolicy.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// DataRepositoryAssociation_AutoExportPolicy AWS CloudFormation Resource (AWS::FSx::DataRepositoryAssociation.AutoExportPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoexportpolicy.html +type DataRepositoryAssociation_AutoExportPolicy struct { + + // Events AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoexportpolicy.html#cfn-fsx-datarepositoryassociation-autoexportpolicy-events + Events []string `json:"Events"` + + // 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 *DataRepositoryAssociation_AutoExportPolicy) AWSCloudFormationType() string { + return "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" +} diff --git a/cloudformation/fsx/aws-fsx-datarepositoryassociation_autoimportpolicy.go b/cloudformation/fsx/aws-fsx-datarepositoryassociation_autoimportpolicy.go new file mode 100644 index 0000000000..4d03397ca1 --- /dev/null +++ b/cloudformation/fsx/aws-fsx-datarepositoryassociation_autoimportpolicy.go @@ -0,0 +1,37 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// DataRepositoryAssociation_AutoImportPolicy AWS CloudFormation Resource (AWS::FSx::DataRepositoryAssociation.AutoImportPolicy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoimportpolicy.html +type DataRepositoryAssociation_AutoImportPolicy struct { + + // Events AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-autoimportpolicy.html#cfn-fsx-datarepositoryassociation-autoimportpolicy-events + Events []string `json:"Events"` + + // 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 *DataRepositoryAssociation_AutoImportPolicy) AWSCloudFormationType() string { + return "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" +} diff --git a/cloudformation/fsx/aws-fsx-datarepositoryassociation_s3.go b/cloudformation/fsx/aws-fsx-datarepositoryassociation_s3.go new file mode 100644 index 0000000000..3e0c9929ff --- /dev/null +++ b/cloudformation/fsx/aws-fsx-datarepositoryassociation_s3.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package fsx + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// DataRepositoryAssociation_S3 AWS CloudFormation Resource (AWS::FSx::DataRepositoryAssociation.S3) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html +type DataRepositoryAssociation_S3 struct { + + // AutoExportPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html#cfn-fsx-datarepositoryassociation-s3-autoexportpolicy + AutoExportPolicy *DataRepositoryAssociation_AutoExportPolicy `json:"AutoExportPolicy,omitempty"` + + // AutoImportPolicy AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-datarepositoryassociation-s3.html#cfn-fsx-datarepositoryassociation-s3-autoimportpolicy + AutoImportPolicy *DataRepositoryAssociation_AutoImportPolicy `json:"AutoImportPolicy,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 *DataRepositoryAssociation_S3) AWSCloudFormationType() string { + return "AWS::FSx::DataRepositoryAssociation.S3" +} diff --git a/cloudformation/iot/aws-iot-topicrule_action.go b/cloudformation/iot/aws-iot-topicrule_action.go index b8965bfa3b..626221027c 100644 --- a/cloudformation/iot/aws-iot-topicrule_action.go +++ b/cloudformation/iot/aws-iot-topicrule_action.go @@ -80,6 +80,11 @@ type TopicRule_Action struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-lambda Lambda *TopicRule_LambdaAction `json:"Lambda,omitempty"` + // Location AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-location + Location *TopicRule_LocationAction `json:"Location,omitempty"` + // OpenSearch AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-opensearch diff --git a/cloudformation/iot/aws-iot-topicrule_locationaction.go b/cloudformation/iot/aws-iot-topicrule_locationaction.go new file mode 100644 index 0000000000..94a988bbbe --- /dev/null +++ b/cloudformation/iot/aws-iot-topicrule_locationaction.go @@ -0,0 +1,62 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// TopicRule_LocationAction AWS CloudFormation Resource (AWS::IoT::TopicRule.LocationAction) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html +type TopicRule_LocationAction struct { + + // DeviceId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-deviceid + DeviceId string `json:"DeviceId"` + + // Latitude AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-latitude + Latitude string `json:"Latitude"` + + // Longitude AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-longitude + Longitude string `json:"Longitude"` + + // RoleArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-rolearn + RoleArn string `json:"RoleArn"` + + // Timestamp AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-timestamp + Timestamp *TopicRule_Timestamp `json:"Timestamp,omitempty"` + + // TrackerName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-locationaction.html#cfn-iot-topicrule-locationaction-trackername + TrackerName string `json:"TrackerName"` + + // 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 *TopicRule_LocationAction) AWSCloudFormationType() string { + return "AWS::IoT::TopicRule.LocationAction" +} diff --git a/cloudformation/iot/aws-iot-topicrule_timestamp.go b/cloudformation/iot/aws-iot-topicrule_timestamp.go new file mode 100644 index 0000000000..4ed1a32875 --- /dev/null +++ b/cloudformation/iot/aws-iot-topicrule_timestamp.go @@ -0,0 +1,42 @@ +// Code generated by "go generate". Please don't change this file directly. + +package iot + +import ( + "github.com/awslabs/goformation/v7/cloudformation/policies" +) + +// TopicRule_Timestamp AWS CloudFormation Resource (AWS::IoT::TopicRule.Timestamp) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html +type TopicRule_Timestamp struct { + + // Unit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html#cfn-iot-topicrule-timestamp-unit + Unit *string `json:"Unit,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestamp.html#cfn-iot-topicrule-timestamp-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 *TopicRule_Timestamp) AWSCloudFormationType() string { + return "AWS::IoT::TopicRule.Timestamp" +} diff --git a/cloudformation/iot/aws-iot-topicrule_timestreamaction.go b/cloudformation/iot/aws-iot-topicrule_timestreamaction.go index 8ec9812449..fc8c7e7ebd 100644 --- a/cloudformation/iot/aws-iot-topicrule_timestreamaction.go +++ b/cloudformation/iot/aws-iot-topicrule_timestreamaction.go @@ -10,11 +10,6 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html type TopicRule_TimestreamAction struct { - // BatchMode AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-batchmode - BatchMode *bool `json:"BatchMode,omitempty"` - // DatabaseName AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-databasename diff --git a/schema/cdk.go b/schema/cdk.go index 3c6f839d4d..c8d446ad45 100644 --- a/schema/cdk.go +++ b/schema/cdk.go @@ -457,6 +457,9 @@ var CdkSchema = `{ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4913,6 +4916,12 @@ var CdkSchema = `{ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29116,6 +29125,9 @@ var CdkSchema = `{ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42583,8 +42595,7 @@ var CdkSchema = `{ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51975,6 +51986,10 @@ var CdkSchema = `{ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -62035,6 +62050,136 @@ var CdkSchema = `{ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77574,6 +77719,9 @@ var CdkSchema = `{ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77991,6 +78139,37 @@ var CdkSchema = `{ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78177,12 +78356,24 @@ var CdkSchema = `{ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -146087,6 +146278,9 @@ var CdkSchema = `{ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" }, diff --git a/schema/cdk.schema.json b/schema/cdk.schema.json index 7a63f60086..3994471f66 100644 --- a/schema/cdk.schema.json +++ b/schema/cdk.schema.json @@ -452,6 +452,9 @@ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4908,6 +4911,12 @@ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29111,6 +29120,9 @@ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42578,8 +42590,7 @@ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51970,6 +51981,10 @@ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -62030,6 +62045,136 @@ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77569,6 +77714,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77986,6 +78134,37 @@ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78172,12 +78351,24 @@ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -146082,6 +146273,9 @@ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" }, diff --git a/schema/cloudformation.go b/schema/cloudformation.go index d889e4a864..5289ac4341 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -457,6 +457,9 @@ var CloudformationSchema = `{ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4913,6 +4916,12 @@ var CloudformationSchema = `{ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29055,6 +29064,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42522,8 +42534,7 @@ var CloudformationSchema = `{ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51914,6 +51925,10 @@ var CloudformationSchema = `{ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -61974,6 +61989,136 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77513,6 +77658,9 @@ var CloudformationSchema = `{ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77930,6 +78078,37 @@ var CloudformationSchema = `{ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78116,12 +78295,24 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -146023,6 +146214,9 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 97e92323ee..2b65e59ea6 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -452,6 +452,9 @@ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4908,6 +4911,12 @@ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29050,6 +29059,9 @@ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42517,8 +42529,7 @@ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51909,6 +51920,10 @@ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -61969,6 +61984,136 @@ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77508,6 +77653,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77925,6 +78073,37 @@ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78111,12 +78290,24 @@ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -146018,6 +146209,9 @@ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" }, diff --git a/schema/sam.go b/schema/sam.go index 24be5ca920..99150a2c0c 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -457,6 +457,9 @@ var SamSchema = `{ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4913,6 +4916,12 @@ var SamSchema = `{ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29055,6 +29064,9 @@ var SamSchema = `{ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42522,8 +42534,7 @@ var SamSchema = `{ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51914,6 +51925,10 @@ var SamSchema = `{ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -61974,6 +61989,136 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77513,6 +77658,9 @@ var SamSchema = `{ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77930,6 +78078,37 @@ var SamSchema = `{ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78116,12 +78295,24 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -148921,6 +149112,9 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index 01c82cc8b3..72d95a7180 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -452,6 +452,9 @@ }, "Type": { "type": "string" + }, + "UsageMode": { + "type": "string" } }, "required": [ @@ -4908,6 +4911,12 @@ "type": "string" }, "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "type": "object" }, "Target": { @@ -29050,6 +29059,9 @@ }, "type": "array" }, + "DeletionProtection": { + "type": "string" + }, "DeviceConfiguration": { "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" }, @@ -42517,8 +42529,7 @@ }, "required": [ "ResourceId", - "ResourceType", - "TrafficType" + "ResourceType" ], "type": "object" }, @@ -51909,6 +51920,10 @@ "type": "string" } }, + "required": [ + "Image", + "Name" + ], "type": "object" }, "AWS::ECS::TaskDefinition.ContainerDependency": { @@ -61969,6 +61984,136 @@ ], "type": "object" }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, "AWS::FSx::FileSystem": { "additionalProperties": false, "properties": { @@ -77508,6 +77653,9 @@ "Lambda": { "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, "OpenSearch": { "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" }, @@ -77925,6 +78073,37 @@ }, "type": "object" }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, "AWS::IoT::TopicRule.OpenSearchAction": { "additionalProperties": false, "properties": { @@ -78111,12 +78290,24 @@ ], "type": "object" }, - "AWS::IoT::TopicRule.TimestreamAction": { + "AWS::IoT::TopicRule.Timestamp": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" + "Unit": { + "type": "string" }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { "DatabaseName": { "type": "string" }, @@ -148916,6 +149107,9 @@ { "$ref": "#/definitions/AWS::FMS::Policy" }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, { "$ref": "#/definitions/AWS::FSx::FileSystem" },