diff --git a/cloudformation/all.go b/cloudformation/all.go index e979c4c2a3..550fd7e95f 100644 --- a/cloudformation/all.go +++ b/cloudformation/all.go @@ -78,7 +78,9 @@ import ( "github.com/awslabs/goformation/v4/cloudformation/iot1click" "github.com/awslabs/goformation/v4/cloudformation/iotanalytics" "github.com/awslabs/goformation/v4/cloudformation/iotevents" + "github.com/awslabs/goformation/v4/cloudformation/iotsitewise" "github.com/awslabs/goformation/v4/cloudformation/iotthingsgraph" + "github.com/awslabs/goformation/v4/cloudformation/ivs" "github.com/awslabs/goformation/v4/cloudformation/kendra" "github.com/awslabs/goformation/v4/cloudformation/kinesis" "github.com/awslabs/goformation/v4/cloudformation/kinesisanalytics" @@ -470,6 +472,9 @@ func AllResources() map[string]Resource { "AWS::IAM::ServiceLinkedRole": &iam.ServiceLinkedRole{}, "AWS::IAM::User": &iam.User{}, "AWS::IAM::UserToGroupAddition": &iam.UserToGroupAddition{}, + "AWS::IVS::Channel": &ivs.Channel{}, + "AWS::IVS::PlaybackKeyPair": &ivs.PlaybackKeyPair{}, + "AWS::IVS::StreamKey": &ivs.StreamKey{}, "AWS::ImageBuilder::Component": &imagebuilder.Component{}, "AWS::ImageBuilder::DistributionConfiguration": &imagebuilder.DistributionConfiguration{}, "AWS::ImageBuilder::Image": &imagebuilder.Image{}, @@ -496,6 +501,9 @@ func AllResources() map[string]Resource { "AWS::IoTAnalytics::Pipeline": &iotanalytics.Pipeline{}, "AWS::IoTEvents::DetectorModel": &iotevents.DetectorModel{}, "AWS::IoTEvents::Input": &iotevents.Input{}, + "AWS::IoTSiteWise::Asset": &iotsitewise.Asset{}, + "AWS::IoTSiteWise::AssetModel": &iotsitewise.AssetModel{}, + "AWS::IoTSiteWise::Gateway": &iotsitewise.Gateway{}, "AWS::IoTThingsGraph::FlowTemplate": &iotthingsgraph.FlowTemplate{}, "AWS::KMS::Alias": &kms.Alias{}, "AWS::KMS::Key": &kms.Key{}, @@ -8762,6 +8770,78 @@ func (t *Template) GetIAMUserToGroupAdditionWithName(name string) (*iam.UserToGr return nil, fmt.Errorf("resource %q of type iam.UserToGroupAddition not found", name) } +// GetAllIVSChannelResources retrieves all ivs.Channel items from an AWS CloudFormation template +func (t *Template) GetAllIVSChannelResources() map[string]*ivs.Channel { + results := map[string]*ivs.Channel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ivs.Channel: + results[name] = resource + } + } + return results +} + +// GetIVSChannelWithName retrieves all ivs.Channel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIVSChannelWithName(name string) (*ivs.Channel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ivs.Channel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ivs.Channel not found", name) +} + +// GetAllIVSPlaybackKeyPairResources retrieves all ivs.PlaybackKeyPair items from an AWS CloudFormation template +func (t *Template) GetAllIVSPlaybackKeyPairResources() map[string]*ivs.PlaybackKeyPair { + results := map[string]*ivs.PlaybackKeyPair{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ivs.PlaybackKeyPair: + results[name] = resource + } + } + return results +} + +// GetIVSPlaybackKeyPairWithName retrieves all ivs.PlaybackKeyPair items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIVSPlaybackKeyPairWithName(name string) (*ivs.PlaybackKeyPair, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ivs.PlaybackKeyPair: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ivs.PlaybackKeyPair not found", name) +} + +// GetAllIVSStreamKeyResources retrieves all ivs.StreamKey items from an AWS CloudFormation template +func (t *Template) GetAllIVSStreamKeyResources() map[string]*ivs.StreamKey { + results := map[string]*ivs.StreamKey{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *ivs.StreamKey: + results[name] = resource + } + } + return results +} + +// GetIVSStreamKeyWithName retrieves all ivs.StreamKey items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIVSStreamKeyWithName(name string) (*ivs.StreamKey, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *ivs.StreamKey: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type ivs.StreamKey not found", name) +} + // GetAllImageBuilderComponentResources retrieves all imagebuilder.Component items from an AWS CloudFormation template func (t *Template) GetAllImageBuilderComponentResources() map[string]*imagebuilder.Component { results := map[string]*imagebuilder.Component{} @@ -9386,6 +9466,78 @@ func (t *Template) GetIoTEventsInputWithName(name string) (*iotevents.Input, err return nil, fmt.Errorf("resource %q of type iotevents.Input not found", name) } +// GetAllIoTSiteWiseAssetResources retrieves all iotsitewise.Asset items from an AWS CloudFormation template +func (t *Template) GetAllIoTSiteWiseAssetResources() map[string]*iotsitewise.Asset { + results := map[string]*iotsitewise.Asset{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iotsitewise.Asset: + results[name] = resource + } + } + return results +} + +// GetIoTSiteWiseAssetWithName retrieves all iotsitewise.Asset items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTSiteWiseAssetWithName(name string) (*iotsitewise.Asset, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iotsitewise.Asset: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iotsitewise.Asset not found", name) +} + +// GetAllIoTSiteWiseAssetModelResources retrieves all iotsitewise.AssetModel items from an AWS CloudFormation template +func (t *Template) GetAllIoTSiteWiseAssetModelResources() map[string]*iotsitewise.AssetModel { + results := map[string]*iotsitewise.AssetModel{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iotsitewise.AssetModel: + results[name] = resource + } + } + return results +} + +// GetIoTSiteWiseAssetModelWithName retrieves all iotsitewise.AssetModel items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTSiteWiseAssetModelWithName(name string) (*iotsitewise.AssetModel, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iotsitewise.AssetModel: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iotsitewise.AssetModel not found", name) +} + +// GetAllIoTSiteWiseGatewayResources retrieves all iotsitewise.Gateway items from an AWS CloudFormation template +func (t *Template) GetAllIoTSiteWiseGatewayResources() map[string]*iotsitewise.Gateway { + results := map[string]*iotsitewise.Gateway{} + for name, untyped := range t.Resources { + switch resource := untyped.(type) { + case *iotsitewise.Gateway: + results[name] = resource + } + } + return results +} + +// GetIoTSiteWiseGatewayWithName retrieves all iotsitewise.Gateway items from an AWS CloudFormation template +// whose logical ID matches the provided name. Returns an error if not found. +func (t *Template) GetIoTSiteWiseGatewayWithName(name string) (*iotsitewise.Gateway, error) { + if untyped, ok := t.Resources[name]; ok { + switch resource := untyped.(type) { + case *iotsitewise.Gateway: + return resource, nil + } + } + return nil, fmt.Errorf("resource %q of type iotsitewise.Gateway not found", name) +} + // GetAllIoTThingsGraphFlowTemplateResources retrieves all iotthingsgraph.FlowTemplate items from an AWS CloudFormation template func (t *Template) GetAllIoTThingsGraphFlowTemplateResources() map[string]*iotthingsgraph.FlowTemplate { results := map[string]*iotthingsgraph.FlowTemplate{} diff --git a/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go b/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go index 1d0709372e..664f70e87b 100644 --- a/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go +++ b/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go @@ -13,6 +13,11 @@ type LifecyclePolicy_Parameters struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-excludebootvolume ExcludeBootVolume bool `json:"ExcludeBootVolume,omitempty"` + // NoReboot AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-noreboot + NoReboot bool `json:"NoReboot,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ec2/aws-ec2-clientvpnendpoint.go b/cloudformation/ec2/aws-ec2-clientvpnendpoint.go index 9396cc7bac..05cdeb7797 100644 --- a/cloudformation/ec2/aws-ec2-clientvpnendpoint.go +++ b/cloudformation/ec2/aws-ec2-clientvpnendpoint.go @@ -42,6 +42,11 @@ type ClientVpnEndpoint struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-securitygroupids SecurityGroupIds []string `json:"SecurityGroupIds,omitempty"` + // SelfServicePortal AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-selfserviceportal + SelfServicePortal string `json:"SelfServicePortal,omitempty"` + // ServerCertificateArn AWS CloudFormation Property // Required: true // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-servercertificatearn diff --git a/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go b/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go index 6ca623a75e..8d5a73baa0 100644 --- a/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go +++ b/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go @@ -13,6 +13,11 @@ type ClientVpnEndpoint_FederatedAuthenticationRequest struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-samlproviderarn SAMLProviderArn string `json:"SAMLProviderArn,omitempty"` + // SelfServiceSAMLProviderArn AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-selfservicesamlproviderarn + SelfServiceSAMLProviderArn string `json:"SelfServiceSAMLProviderArn,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/ec2/aws-ec2-vpcendpointservice.go b/cloudformation/ec2/aws-ec2-vpcendpointservice.go index 849484108d..31fa9cc250 100644 --- a/cloudformation/ec2/aws-ec2-vpcendpointservice.go +++ b/cloudformation/ec2/aws-ec2-vpcendpointservice.go @@ -17,11 +17,6 @@ type VPCEndpointService struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired AcceptanceRequired bool `json:"AcceptanceRequired,omitempty"` - // ApplianceLoadBalancerArns AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-applianceloadbalancerarns - ApplianceLoadBalancerArns []string `json:"ApplianceLoadBalancerArns,omitempty"` - // NetworkLoadBalancerArns AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns diff --git a/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go b/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go index f50d6f6406..97005e014e 100644 --- a/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go +++ b/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go @@ -47,6 +47,11 @@ type EndpointGroup struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-listenerarn ListenerArn string `json:"ListenerArn,omitempty"` + // PortOverrides AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-portoverrides + PortOverrides []EndpointGroup_PortOverride `json:"PortOverrides,omitempty"` + // ThresholdCount AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-thresholdcount diff --git a/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go b/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go new file mode 100644 index 0000000000..cba0620a19 --- /dev/null +++ b/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go @@ -0,0 +1,40 @@ +package globalaccelerator + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// EndpointGroup_PortOverride AWS CloudFormation Resource (AWS::GlobalAccelerator::EndpointGroup.PortOverride) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html +type EndpointGroup_PortOverride struct { + + // EndpointPort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-endpointport + EndpointPort int `json:"EndpointPort"` + + // ListenerPort AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-listenerport + ListenerPort int `json:"ListenerPort"` + + // 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 *EndpointGroup_PortOverride) AWSCloudFormationType() string { + return "AWS::GlobalAccelerator::EndpointGroup.PortOverride" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-asset.go b/cloudformation/iotsitewise/aws-iotsitewise-asset.go new file mode 100644 index 0000000000..f15b680501 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-asset.go @@ -0,0 +1,127 @@ +package iotsitewise + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Asset AWS CloudFormation Resource (AWS::IoTSiteWise::Asset) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html +type Asset struct { + + // AssetHierarchies AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assethierarchies + AssetHierarchies []Asset_AssetHierarchy `json:"AssetHierarchies,omitempty"` + + // AssetModelId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetmodelid + AssetModelId string `json:"AssetModelId,omitempty"` + + // AssetName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetname + AssetName string `json:"AssetName,omitempty"` + + // AssetProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetproperties + AssetProperties []Asset_AssetProperty `json:"AssetProperties,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Asset) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Asset" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Asset) MarshalJSON() ([]byte, error) { + type Properties Asset + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Asset) UnmarshalJSON(b []byte) error { + type Properties Asset + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Asset(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go b/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go new file mode 100644 index 0000000000..f8e299a102 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go @@ -0,0 +1,40 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Asset_AssetHierarchy AWS CloudFormation Resource (AWS::IoTSiteWise::Asset.AssetHierarchy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html +type Asset_AssetHierarchy struct { + + // ChildAssetId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-childassetid + ChildAssetId string `json:"ChildAssetId,omitempty"` + + // LogicalId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-logicalid + LogicalId string `json:"LogicalId,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Asset_AssetHierarchy) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Asset.AssetHierarchy" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go b/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go new file mode 100644 index 0000000000..818de18686 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go @@ -0,0 +1,45 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Asset_AssetProperty AWS CloudFormation Resource (AWS::IoTSiteWise::Asset.AssetProperty) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html +type Asset_AssetProperty struct { + + // Alias AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-alias + Alias string `json:"Alias,omitempty"` + + // LogicalId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-logicalid + LogicalId string `json:"LogicalId,omitempty"` + + // NotificationState AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-notificationstate + NotificationState string `json:"NotificationState,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Asset_AssetProperty) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Asset.AssetProperty" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go new file mode 100644 index 0000000000..81fcdb5c17 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go @@ -0,0 +1,127 @@ +package iotsitewise + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// AssetModel AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html +type AssetModel struct { + + // AssetModelDescription AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeldescription + AssetModelDescription string `json:"AssetModelDescription,omitempty"` + + // AssetModelHierarchies AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelhierarchies + AssetModelHierarchies []AssetModel_AssetModelHierarchy `json:"AssetModelHierarchies,omitempty"` + + // AssetModelName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelname + AssetModelName string `json:"AssetModelName,omitempty"` + + // AssetModelProperties AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelproperties + AssetModelProperties []AssetModel_AssetModelProperty `json:"AssetModelProperties,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-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 *AssetModel) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel" +} + +// 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 AssetModel) MarshalJSON() ([]byte, error) { + type Properties AssetModel + 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 *AssetModel) UnmarshalJSON(b []byte) error { + type Properties AssetModel + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = AssetModel(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go new file mode 100644 index 0000000000..33086f7e78 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go @@ -0,0 +1,45 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_AssetModelHierarchy AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelHierarchy) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html +type AssetModel_AssetModelHierarchy struct { + + // ChildAssetModelId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-childassetmodelid + ChildAssetModelId string `json:"ChildAssetModelId,omitempty"` + + // LogicalId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-logicalid + LogicalId string `json:"LogicalId,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-name + Name string `json:"Name,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AssetModel_AssetModelHierarchy) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go new file mode 100644 index 0000000000..241a4b9c77 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go @@ -0,0 +1,55 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_AssetModelProperty AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelProperty) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html +type AssetModel_AssetModelProperty struct { + + // DataType AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatype + DataType string `json:"DataType,omitempty"` + + // LogicalId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid + LogicalId string `json:"LogicalId,omitempty"` + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-name + Name string `json:"Name,omitempty"` + + // Type AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-type + Type *AssetModel_PropertyType `json:"Type,omitempty"` + + // Unit AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-unit + Unit string `json:"Unit,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 *AssetModel_AssetModelProperty) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.AssetModelProperty" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go new file mode 100644 index 0000000000..85798383e5 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_Attribute AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Attribute) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html +type AssetModel_Attribute struct { + + // DefaultValue AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html#cfn-iotsitewise-assetmodel-attribute-defaultvalue + DefaultValue string `json:"DefaultValue,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 *AssetModel_Attribute) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.Attribute" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go new file mode 100644 index 0000000000..5dd73b6cb3 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go @@ -0,0 +1,40 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_ExpressionVariable AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.ExpressionVariable) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html +type AssetModel_ExpressionVariable struct { + + // Name AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-name + Name string `json:"Name,omitempty"` + + // Value AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-value + Value *AssetModel_VariableValue `json:"Value,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *AssetModel_ExpressionVariable) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.ExpressionVariable" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go new file mode 100644 index 0000000000..f143acedec --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go @@ -0,0 +1,45 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_Metric AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Metric) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html +type AssetModel_Metric struct { + + // Expression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-expression + Expression string `json:"Expression,omitempty"` + + // Variables AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-variables + Variables []AssetModel_ExpressionVariable `json:"Variables,omitempty"` + + // Window AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-window + Window *AssetModel_MetricWindow `json:"Window,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 *AssetModel_Metric) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.Metric" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go new file mode 100644 index 0000000000..3b4aa77f92 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_MetricWindow AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.MetricWindow) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html +type AssetModel_MetricWindow struct { + + // Tumbling AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html#cfn-iotsitewise-assetmodel-metricwindow-tumbling + Tumbling *AssetModel_TumblingWindow `json:"Tumbling,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 *AssetModel_MetricWindow) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.MetricWindow" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go new file mode 100644 index 0000000000..52053c2290 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go @@ -0,0 +1,50 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_PropertyType AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.PropertyType) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html +type AssetModel_PropertyType struct { + + // Attribute AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-attribute + Attribute *AssetModel_Attribute `json:"Attribute,omitempty"` + + // Metric AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-metric + Metric *AssetModel_Metric `json:"Metric,omitempty"` + + // Transform AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-transform + Transform *AssetModel_Transform `json:"Transform,omitempty"` + + // TypeName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-typename + TypeName string `json:"TypeName,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 *AssetModel_PropertyType) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.PropertyType" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go new file mode 100644 index 0000000000..139102fdcf --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go @@ -0,0 +1,40 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_Transform AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Transform) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html +type AssetModel_Transform struct { + + // Expression AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-expression + Expression string `json:"Expression,omitempty"` + + // Variables AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-variables + Variables []AssetModel_ExpressionVariable `json:"Variables,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 *AssetModel_Transform) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.Transform" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go new file mode 100644 index 0000000000..92c24c0e20 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_TumblingWindow AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.TumblingWindow) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html +type AssetModel_TumblingWindow struct { + + // Interval AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html#cfn-iotsitewise-assetmodel-tumblingwindow-interval + Interval string `json:"Interval,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 *AssetModel_TumblingWindow) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.TumblingWindow" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go new file mode 100644 index 0000000000..c4a2326a30 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go @@ -0,0 +1,40 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// AssetModel_VariableValue AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.VariableValue) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html +type AssetModel_VariableValue struct { + + // HierarchyLogicalId AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchylogicalid + HierarchyLogicalId string `json:"HierarchyLogicalId,omitempty"` + + // PropertyLogicalId AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertylogicalid + PropertyLogicalId string `json:"PropertyLogicalId,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 *AssetModel_VariableValue) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::AssetModel.VariableValue" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-gateway.go b/cloudformation/iotsitewise/aws-iotsitewise-gateway.go new file mode 100644 index 0000000000..8c7d1b99dc --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-gateway.go @@ -0,0 +1,122 @@ +package iotsitewise + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Gateway AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html +type Gateway struct { + + // GatewayCapabilitySummaries AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewaycapabilitysummaries + GatewayCapabilitySummaries []Gateway_GatewayCapabilitySummary `json:"GatewayCapabilitySummaries,omitempty"` + + // GatewayName AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayname + GatewayName string `json:"GatewayName,omitempty"` + + // GatewayPlatform AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayplatform + GatewayPlatform *Gateway_GatewayPlatform `json:"GatewayPlatform,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-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 *Gateway) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Gateway" +} + +// 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 Gateway) MarshalJSON() ([]byte, error) { + type Properties Gateway + 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 *Gateway) UnmarshalJSON(b []byte) error { + type Properties Gateway + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Gateway(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go b/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go new file mode 100644 index 0000000000..8e7adfb548 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go @@ -0,0 +1,40 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Gateway_GatewayCapabilitySummary AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html +type Gateway_GatewayCapabilitySummary struct { + + // CapabilityConfiguration AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilityconfiguration + CapabilityConfiguration string `json:"CapabilityConfiguration,omitempty"` + + // CapabilityNamespace AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilitynamespace + CapabilityNamespace string `json:"CapabilityNamespace,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 *Gateway_GatewayCapabilitySummary) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go b/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go new file mode 100644 index 0000000000..551e266146 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Gateway_GatewayPlatform AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.GatewayPlatform) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html +type Gateway_GatewayPlatform struct { + + // Greengrass AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html#cfn-iotsitewise-gateway-gatewayplatform-greengrass + Greengrass *Gateway_Greengrass `json:"Greengrass,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 *Gateway_GatewayPlatform) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Gateway.GatewayPlatform" +} diff --git a/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go b/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go new file mode 100644 index 0000000000..2096d2c9b1 --- /dev/null +++ b/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go @@ -0,0 +1,35 @@ +package iotsitewise + +import ( + "github.com/awslabs/goformation/v4/cloudformation/policies" +) + +// Gateway_Greengrass AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.Greengrass) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html +type Gateway_Greengrass struct { + + // GroupArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html#cfn-iotsitewise-gateway-greengrass-grouparn + GroupArn string `json:"GroupArn,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 *Gateway_Greengrass) AWSCloudFormationType() string { + return "AWS::IoTSiteWise::Gateway.Greengrass" +} diff --git a/cloudformation/ivs/aws-ivs-channel.go b/cloudformation/ivs/aws-ivs-channel.go new file mode 100644 index 0000000000..032b73a83c --- /dev/null +++ b/cloudformation/ivs/aws-ivs-channel.go @@ -0,0 +1,127 @@ +package ivs + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// Channel AWS CloudFormation Resource (AWS::IVS::Channel) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html +type Channel struct { + + // Authorized AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-authorized + Authorized bool `json:"Authorized,omitempty"` + + // LatencyMode AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-latencymode + LatencyMode string `json:"LatencyMode,omitempty"` + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-name + Name string `json:"Name,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-tags + Tags []tags.Tag `json:"Tags,omitempty"` + + // Type AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-type + Type string `json:"Type,omitempty"` + + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy + AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` + + // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy + AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"` + + // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource + AWSCloudFormationDependsOn []string `json:"-"` + + // AWSCloudFormationMetadata stores structured data associated with this resource + AWSCloudFormationMetadata map[string]interface{} `json:"-"` + + // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created + AWSCloudFormationCondition string `json:"-"` +} + +// AWSCloudFormationType returns the AWS CloudFormation resource type +func (r *Channel) AWSCloudFormationType() string { + return "AWS::IVS::Channel" +} + +// MarshalJSON is a custom JSON marshalling hook that embeds this object into +// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'. +func (r Channel) MarshalJSON() ([]byte, error) { + type Properties Channel + return json.Marshal(&struct { + Type string + Properties Properties + DependsOn []string `json:"DependsOn,omitempty"` + Metadata map[string]interface{} `json:"Metadata,omitempty"` + DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"` + UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"` + Condition string `json:"Condition,omitempty"` + }{ + Type: r.AWSCloudFormationType(), + Properties: (Properties)(r), + DependsOn: r.AWSCloudFormationDependsOn, + Metadata: r.AWSCloudFormationMetadata, + DeletionPolicy: r.AWSCloudFormationDeletionPolicy, + UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy, + Condition: r.AWSCloudFormationCondition, + }) +} + +// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer +// AWS CloudFormation resource object, and just keeps the 'Properties' field. +func (r *Channel) UnmarshalJSON(b []byte) error { + type Properties Channel + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = Channel(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/ivs/aws-ivs-playbackkeypair.go b/cloudformation/ivs/aws-ivs-playbackkeypair.go new file mode 100644 index 0000000000..d8eb5d1565 --- /dev/null +++ b/cloudformation/ivs/aws-ivs-playbackkeypair.go @@ -0,0 +1,117 @@ +package ivs + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// PlaybackKeyPair AWS CloudFormation Resource (AWS::IVS::PlaybackKeyPair) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html +type PlaybackKeyPair struct { + + // Name AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-name + Name string `json:"Name,omitempty"` + + // PublicKeyMaterial AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-publickeymaterial + PublicKeyMaterial string `json:"PublicKeyMaterial,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-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 *PlaybackKeyPair) AWSCloudFormationType() string { + return "AWS::IVS::PlaybackKeyPair" +} + +// 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 PlaybackKeyPair) MarshalJSON() ([]byte, error) { + type Properties PlaybackKeyPair + 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 *PlaybackKeyPair) UnmarshalJSON(b []byte) error { + type Properties PlaybackKeyPair + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = PlaybackKeyPair(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/ivs/aws-ivs-streamkey.go b/cloudformation/ivs/aws-ivs-streamkey.go new file mode 100644 index 0000000000..60325298d3 --- /dev/null +++ b/cloudformation/ivs/aws-ivs-streamkey.go @@ -0,0 +1,112 @@ +package ivs + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/awslabs/goformation/v4/cloudformation/policies" + "github.com/awslabs/goformation/v4/cloudformation/tags" +) + +// StreamKey AWS CloudFormation Resource (AWS::IVS::StreamKey) +// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html +type StreamKey struct { + + // ChannelArn AWS CloudFormation Property + // Required: true + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-channelarn + ChannelArn string `json:"ChannelArn,omitempty"` + + // Tags AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-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 *StreamKey) AWSCloudFormationType() string { + return "AWS::IVS::StreamKey" +} + +// 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 StreamKey) MarshalJSON() ([]byte, error) { + type Properties StreamKey + 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 *StreamKey) UnmarshalJSON(b []byte) error { + type Properties StreamKey + res := &struct { + Type string + Properties *Properties + DependsOn []string + Metadata map[string]interface{} + DeletionPolicy string + UpdateReplacePolicy string + Condition string + }{} + + dec := json.NewDecoder(bytes.NewReader(b)) + dec.DisallowUnknownFields() // Force error if unknown field is found + + if err := dec.Decode(&res); err != nil { + fmt.Printf("ERROR: %s\n", err) + return err + } + + // If the resource has no Properties set, it could be nil + if res.Properties != nil { + *r = StreamKey(*res.Properties) + } + if res.DependsOn != nil { + r.AWSCloudFormationDependsOn = res.DependsOn + } + if res.Metadata != nil { + r.AWSCloudFormationMetadata = res.Metadata + } + if res.DeletionPolicy != "" { + r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy) + } + if res.UpdateReplacePolicy != "" { + r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy) + } + if res.Condition != "" { + r.AWSCloudFormationCondition = res.Condition + } + return nil +} diff --git a/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go b/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go index c6aa3e9c37..36cad9f09a 100644 --- a/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go +++ b/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go @@ -17,6 +17,11 @@ type DataLakeSettings struct { // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-admins Admins *DataLakeSettings_Admins `json:"Admins,omitempty"` + // TrustedResourceOwners AWS CloudFormation Property + // Required: false + // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-trustedresourceowners + TrustedResourceOwners []string `json:"TrustedResourceOwners,omitempty"` + // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"` diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go index bfc4af26d6..44b54de88e 100644 --- a/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_dashpackage.go @@ -11,7 +11,7 @@ type OriginEndpoint_DashPackage struct { // AdTriggers AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html#cfn-mediapackage-originendpoint-dashpackage-adtriggers - AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + AdTriggers []string `json:"AdTriggers,omitempty"` // AdsOnDeliveryRestrictions AWS CloudFormation Property // Required: false diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go index 1e905fd3ba..b1518a0434 100644 --- a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlsmanifest.go @@ -16,7 +16,7 @@ type OriginEndpoint_HlsManifest struct { // AdTriggers AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html#cfn-mediapackage-originendpoint-hlsmanifest-adtriggers - AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + AdTriggers []string `json:"AdTriggers,omitempty"` // AdsOnDeliveryRestrictions AWS CloudFormation Property // Required: false diff --git a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go index 4b4823e2b9..63cc77a7c1 100644 --- a/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go +++ b/cloudformation/mediapackage/aws-mediapackage-originendpoint_hlspackage.go @@ -16,7 +16,7 @@ type OriginEndpoint_HlsPackage struct { // AdTriggers AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html#cfn-mediapackage-originendpoint-hlspackage-adtriggers - AdTriggers *OriginEndpoint_AdTriggers `json:"AdTriggers,omitempty"` + AdTriggers []string `json:"AdTriggers,omitempty"` // AdsOnDeliveryRestrictions AWS CloudFormation Property // Required: false diff --git a/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go b/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go index 17817183b7..9628c606b0 100644 --- a/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go +++ b/cloudformation/s3/aws-s3-bucket_sourceselectioncriteria.go @@ -8,11 +8,6 @@ import ( // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html type Bucket_SourceSelectionCriteria struct { - // ReplicaModifications AWS CloudFormation Property - // Required: false - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-replicamodifications - ReplicaModifications *Bucket_ReplicaModifications `json:"ReplicaModifications,omitempty"` - // SseKmsEncryptedObjects AWS CloudFormation Property // Required: false // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-sourceselectioncriteria.html#cfn-s3-bucket-sourceselectioncriteria-ssekmsencryptedobjects diff --git a/schema/cloudformation.go b/schema/cloudformation.go index 9d261fbe21..0276e86f57 100644 --- a/schema/cloudformation.go +++ b/schema/cloudformation.go @@ -22424,6 +22424,9 @@ var CloudformationSchema = `{ "properties": { "ExcludeBootVolume": { "type": "boolean" + }, + "NoReboot": { + "type": "boolean" } }, "type": "object" @@ -24729,6 +24732,9 @@ var CloudformationSchema = `{ }, "type": "array" }, + "SelfServicePortal": { + "type": "string" + }, "ServerCertificateArn": { "type": "string" }, @@ -24848,6 +24854,9 @@ var CloudformationSchema = `{ "properties": { "SAMLProviderArn": { "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "type": "string" } }, "required": [ @@ -30218,12 +30227,6 @@ var CloudformationSchema = `{ "AcceptanceRequired": { "type": "boolean" }, - "ApplianceLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" - }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -39961,6 +39964,12 @@ var CloudformationSchema = `{ "ListenerArn": { "type": "string" }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "type": "array" + }, "ThresholdCount": { "type": "number" }, @@ -40013,6 +40022,22 @@ var CloudformationSchema = `{ ], "type": "object" }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "type": "number" + }, + "ListenerPort": { + "type": "number" + } + }, + "required": [ + "EndpointPort", + "ListenerPort" + ], + "type": "object" + }, "AWS::GlobalAccelerator::Listener": { "additionalProperties": false, "properties": { @@ -45320,7 +45345,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::Component": { + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45352,56 +45377,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ChangeDescription": { - "type": "string" - }, - "Data": { - "type": "string" - }, - "Description": { - "type": "string" + "Authorized": { + "type": "boolean" }, - "KmsKeyId": { + "LatencyMode": { "type": "string" }, "Name": { "type": "string" }, - "Platform": { - "type": "string" - }, - "SupportedOsVersions": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Uri": { - "type": "string" - }, - "Version": { + "Type": { "type": "string" } }, - "required": [ - "Name", - "Platform", - "Version" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Component" + "AWS::IVS::Channel" ], "type": "string" }, @@ -45415,12 +45414,11 @@ var CloudformationSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration": { + "AWS::IVS::PlaybackKeyPair": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45452,37 +45450,27 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Name": { "type": "string" }, - "Distributions": { - "items": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" - }, - "type": "array" - }, - "Name": { + "PublicKeyMaterial": { "type": "string" }, "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "items": { + "$ref": "#/definitions/Tag" }, - "type": "object" + "type": "array" } }, "required": [ - "Distributions", - "Name" + "PublicKeyMaterial" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::DistributionConfiguration" + "AWS::IVS::PlaybackKeyPair" ], "type": "string" }, @@ -45501,28 +45489,75 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration.Distribution": { + "AWS::IVS::StreamKey": { "additionalProperties": false, "properties": { - "AmiDistributionConfiguration": { + "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" }, - "LicenseConfigurationArns": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "ChannelArn" + ], + "type": "object" }, - "Region": { + "Type": { + "enum": [ + "AWS::IVS::StreamKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::ImageBuilder::Image": { + "AWS::ImageBuilder::Component": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45554,21 +45589,30 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfigurationArn": { + "ChangeDescription": { "type": "string" }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" + "Data": { + "type": "string" }, - "ImageRecipeArn": { + "Description": { "type": "string" }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + "KmsKeyId": { + "type": "string" }, - "InfrastructureConfigurationArn": { + "Name": { + "type": "string" + }, + "Platform": { "type": "string" }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45577,17 +45621,24 @@ var CloudformationSchema = `{ } }, "type": "object" + }, + "Uri": { + "type": "string" + }, + "Version": { + "type": "string" } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" + "Name", + "Platform", + "Version" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Image" + "AWS::ImageBuilder::Component" ], "type": "string" }, @@ -45606,19 +45657,7 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::Image.ImageTestsConfiguration": { - "additionalProperties": false, - "properties": { - "ImageTestsEnabled": { - "type": "boolean" - }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline": { + "AWS::ImageBuilder::DistributionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45653,30 +45692,15 @@ var CloudformationSchema = `{ "Description": { "type": "string" }, - "DistributionConfigurationArn": { - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" - }, - "ImageRecipeArn": { - "type": "string" - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" - }, - "InfrastructureConfigurationArn": { - "type": "string" + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "type": "array" }, "Name": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" - }, - "Status": { - "type": "string" - }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45688,15 +45712,14 @@ var CloudformationSchema = `{ } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn", + "Distributions", "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::ImagePipeline" + "AWS::ImageBuilder::DistributionConfiguration" ], "type": "string" }, @@ -45715,31 +45738,245 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "AWS::ImageBuilder::DistributionConfiguration.Distribution": { "additionalProperties": false, "properties": { - "ImageTestsEnabled": { - "type": "boolean" + "AmiDistributionConfiguration": { + "type": "object" }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline.Schedule": { - "additionalProperties": false, - "properties": { - "PipelineExecutionStartCondition": { - "type": "string" + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "ScheduleExpression": { + "Region": { "type": "string" } }, + "required": [ + "Region" + ], "type": "object" }, - "AWS::ImageBuilder::ImageRecipe": { + "AWS::ImageBuilder::Image": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImagePipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49135,7 +49372,7 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate": { + "AWS::IoTSiteWise::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49167,21 +49404,40 @@ var CloudformationSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CompatibleNamespaceVersion": { - "type": "number" + "AssetHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" + }, + "type": "array" }, - "Definition": { - "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + "AssetModelId": { + "type": "string" + }, + "AssetName": { + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Definition" + "AssetModelId", + "AssetName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoTThingsGraph::FlowTemplate" + "AWS::IoTSiteWise::Asset" ], "type": "string" }, @@ -49200,23 +49456,493 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "AWS::IoTSiteWise::Asset.AssetHierarchy": { "additionalProperties": false, "properties": { - "Language": { + "ChildAssetId": { "type": "string" }, - "Text": { + "LogicalId": { "type": "string" } }, "required": [ - "Language", - "Text" + "ChildAssetId", + "LogicalId" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "NotificationState": { + "type": "string" + } + }, + "required": [ + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssetModelDescription": { + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "type": "array" + }, + "AssetModelName": { + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AssetModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "type": "string" + }, + "PropertyLogicalId": { + "type": "string" + } + }, + "required": [ + "PropertyLogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GatewayCapabilitySummaries": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" + }, + "type": "array" + }, + "GatewayName": { + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Gateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "additionalProperties": false, + "properties": { + "CapabilityConfiguration": { + "type": "string" + }, + "CapabilityNamespace": { + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + } + }, + "required": [ + "Greengrass" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CompatibleNamespaceVersion": { + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + } + }, + "required": [ + "Definition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTThingsGraph::FlowTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "additionalProperties": false, + "properties": { + "Language": { + "type": "string" + }, + "Text": { + "type": "string" + } + }, + "required": [ + "Language", + "Text" + ], + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -52890,6 +53616,12 @@ var CloudformationSchema = `{ "properties": { "Admins": { "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins" + }, + "TrustedResourceOwners": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -58736,18 +59468,6 @@ var CloudformationSchema = `{ ], "type": "object" }, - "AWS::MediaPackage::OriginEndpoint.AdTriggers": { - "additionalProperties": false, - "properties": { - "AdTriggers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint.Authorization": { "additionalProperties": false, "properties": { @@ -58822,7 +59542,10 @@ var CloudformationSchema = `{ "additionalProperties": false, "properties": { "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58897,7 +59620,10 @@ var CloudformationSchema = `{ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58936,7 +59662,10 @@ var CloudformationSchema = `{ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -68768,18 +69497,6 @@ var CloudformationSchema = `{ }, "type": "object" }, - "AWS::S3::Bucket.ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -69044,9 +69761,6 @@ var CloudformationSchema = `{ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" - }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } @@ -80543,6 +81257,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IVS::Channel" + }, + { + "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair" + }, + { + "$ref": "#/definitions/AWS::IVS::StreamKey" + }, { "$ref": "#/definitions/AWS::ImageBuilder::Component" }, @@ -80621,6 +81344,15 @@ var CloudformationSchema = `{ { "$ref": "#/definitions/AWS::IoTEvents::Input" }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway" + }, { "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate" }, diff --git a/schema/cloudformation.schema.json b/schema/cloudformation.schema.json index 3fb8ddab46..b03d4a658a 100644 --- a/schema/cloudformation.schema.json +++ b/schema/cloudformation.schema.json @@ -22421,6 +22421,9 @@ "properties": { "ExcludeBootVolume": { "type": "boolean" + }, + "NoReboot": { + "type": "boolean" } }, "type": "object" @@ -24726,6 +24729,9 @@ }, "type": "array" }, + "SelfServicePortal": { + "type": "string" + }, "ServerCertificateArn": { "type": "string" }, @@ -24845,6 +24851,9 @@ "properties": { "SAMLProviderArn": { "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "type": "string" } }, "required": [ @@ -30215,12 +30224,6 @@ "AcceptanceRequired": { "type": "boolean" }, - "ApplianceLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" - }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -39958,6 +39961,12 @@ "ListenerArn": { "type": "string" }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "type": "array" + }, "ThresholdCount": { "type": "number" }, @@ -40010,6 +40019,22 @@ ], "type": "object" }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "type": "number" + }, + "ListenerPort": { + "type": "number" + } + }, + "required": [ + "EndpointPort", + "ListenerPort" + ], + "type": "object" + }, "AWS::GlobalAccelerator::Listener": { "additionalProperties": false, "properties": { @@ -45317,7 +45342,7 @@ ], "type": "object" }, - "AWS::ImageBuilder::Component": { + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45349,56 +45374,30 @@ "Properties": { "additionalProperties": false, "properties": { - "ChangeDescription": { - "type": "string" - }, - "Data": { - "type": "string" - }, - "Description": { - "type": "string" + "Authorized": { + "type": "boolean" }, - "KmsKeyId": { + "LatencyMode": { "type": "string" }, "Name": { "type": "string" }, - "Platform": { - "type": "string" - }, - "SupportedOsVersions": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Uri": { - "type": "string" - }, - "Version": { + "Type": { "type": "string" } }, - "required": [ - "Name", - "Platform", - "Version" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Component" + "AWS::IVS::Channel" ], "type": "string" }, @@ -45412,12 +45411,11 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration": { + "AWS::IVS::PlaybackKeyPair": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45449,37 +45447,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Name": { "type": "string" }, - "Distributions": { - "items": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" - }, - "type": "array" - }, - "Name": { + "PublicKeyMaterial": { "type": "string" }, "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "items": { + "$ref": "#/definitions/Tag" }, - "type": "object" + "type": "array" } }, "required": [ - "Distributions", - "Name" + "PublicKeyMaterial" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::DistributionConfiguration" + "AWS::IVS::PlaybackKeyPair" ], "type": "string" }, @@ -45498,28 +45486,75 @@ ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration.Distribution": { + "AWS::IVS::StreamKey": { "additionalProperties": false, "properties": { - "AmiDistributionConfiguration": { + "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" }, - "LicenseConfigurationArns": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "ChannelArn" + ], + "type": "object" }, - "Region": { + "Type": { + "enum": [ + "AWS::IVS::StreamKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::ImageBuilder::Image": { + "AWS::ImageBuilder::Component": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45551,21 +45586,30 @@ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfigurationArn": { + "ChangeDescription": { "type": "string" }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" + "Data": { + "type": "string" }, - "ImageRecipeArn": { + "Description": { "type": "string" }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + "KmsKeyId": { + "type": "string" }, - "InfrastructureConfigurationArn": { + "Name": { + "type": "string" + }, + "Platform": { "type": "string" }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45574,17 +45618,24 @@ } }, "type": "object" + }, + "Uri": { + "type": "string" + }, + "Version": { + "type": "string" } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" + "Name", + "Platform", + "Version" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Image" + "AWS::ImageBuilder::Component" ], "type": "string" }, @@ -45603,19 +45654,7 @@ ], "type": "object" }, - "AWS::ImageBuilder::Image.ImageTestsConfiguration": { - "additionalProperties": false, - "properties": { - "ImageTestsEnabled": { - "type": "boolean" - }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline": { + "AWS::ImageBuilder::DistributionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45650,30 +45689,15 @@ "Description": { "type": "string" }, - "DistributionConfigurationArn": { - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" - }, - "ImageRecipeArn": { - "type": "string" - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" - }, - "InfrastructureConfigurationArn": { - "type": "string" + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "type": "array" }, "Name": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" - }, - "Status": { - "type": "string" - }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45685,15 +45709,14 @@ } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn", + "Distributions", "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::ImagePipeline" + "AWS::ImageBuilder::DistributionConfiguration" ], "type": "string" }, @@ -45712,31 +45735,245 @@ ], "type": "object" }, - "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "AWS::ImageBuilder::DistributionConfiguration.Distribution": { "additionalProperties": false, "properties": { - "ImageTestsEnabled": { - "type": "boolean" + "AmiDistributionConfiguration": { + "type": "object" }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline.Schedule": { - "additionalProperties": false, - "properties": { - "PipelineExecutionStartCondition": { - "type": "string" + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "ScheduleExpression": { + "Region": { "type": "string" } }, + "required": [ + "Region" + ], "type": "object" }, - "AWS::ImageBuilder::ImageRecipe": { + "AWS::ImageBuilder::Image": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImagePipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49132,7 +49369,7 @@ }, "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate": { + "AWS::IoTSiteWise::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49164,21 +49401,40 @@ "Properties": { "additionalProperties": false, "properties": { - "CompatibleNamespaceVersion": { - "type": "number" + "AssetHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" + }, + "type": "array" }, - "Definition": { - "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + "AssetModelId": { + "type": "string" + }, + "AssetName": { + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Definition" + "AssetModelId", + "AssetName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoTThingsGraph::FlowTemplate" + "AWS::IoTSiteWise::Asset" ], "type": "string" }, @@ -49197,23 +49453,493 @@ ], "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "AWS::IoTSiteWise::Asset.AssetHierarchy": { "additionalProperties": false, "properties": { - "Language": { + "ChildAssetId": { "type": "string" }, - "Text": { + "LogicalId": { "type": "string" } }, "required": [ - "Language", - "Text" + "ChildAssetId", + "LogicalId" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "NotificationState": { + "type": "string" + } + }, + "required": [ + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssetModelDescription": { + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "type": "array" + }, + "AssetModelName": { + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AssetModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "type": "string" + }, + "PropertyLogicalId": { + "type": "string" + } + }, + "required": [ + "PropertyLogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GatewayCapabilitySummaries": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" + }, + "type": "array" + }, + "GatewayName": { + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Gateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "additionalProperties": false, + "properties": { + "CapabilityConfiguration": { + "type": "string" + }, + "CapabilityNamespace": { + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + } + }, + "required": [ + "Greengrass" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CompatibleNamespaceVersion": { + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + } + }, + "required": [ + "Definition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTThingsGraph::FlowTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "additionalProperties": false, + "properties": { + "Language": { + "type": "string" + }, + "Text": { + "type": "string" + } + }, + "required": [ + "Language", + "Text" + ], + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -52887,6 +53613,12 @@ "properties": { "Admins": { "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins" + }, + "TrustedResourceOwners": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -58733,18 +59465,6 @@ ], "type": "object" }, - "AWS::MediaPackage::OriginEndpoint.AdTriggers": { - "additionalProperties": false, - "properties": { - "AdTriggers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint.Authorization": { "additionalProperties": false, "properties": { @@ -58819,7 +59539,10 @@ "additionalProperties": false, "properties": { "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58894,7 +59617,10 @@ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58933,7 +59659,10 @@ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -68765,18 +69494,6 @@ }, "type": "object" }, - "AWS::S3::Bucket.ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -69041,9 +69758,6 @@ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" - }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } @@ -80540,6 +81254,15 @@ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IVS::Channel" + }, + { + "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair" + }, + { + "$ref": "#/definitions/AWS::IVS::StreamKey" + }, { "$ref": "#/definitions/AWS::ImageBuilder::Component" }, @@ -80618,6 +81341,15 @@ { "$ref": "#/definitions/AWS::IoTEvents::Input" }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway" + }, { "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate" }, diff --git a/schema/sam.go b/schema/sam.go index 7779e29d52..556d61b4d8 100644 --- a/schema/sam.go +++ b/schema/sam.go @@ -22424,6 +22424,9 @@ var SamSchema = `{ "properties": { "ExcludeBootVolume": { "type": "boolean" + }, + "NoReboot": { + "type": "boolean" } }, "type": "object" @@ -24729,6 +24732,9 @@ var SamSchema = `{ }, "type": "array" }, + "SelfServicePortal": { + "type": "string" + }, "ServerCertificateArn": { "type": "string" }, @@ -24848,6 +24854,9 @@ var SamSchema = `{ "properties": { "SAMLProviderArn": { "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "type": "string" } }, "required": [ @@ -30218,12 +30227,6 @@ var SamSchema = `{ "AcceptanceRequired": { "type": "boolean" }, - "ApplianceLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" - }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -39961,6 +39964,12 @@ var SamSchema = `{ "ListenerArn": { "type": "string" }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "type": "array" + }, "ThresholdCount": { "type": "number" }, @@ -40013,6 +40022,22 @@ var SamSchema = `{ ], "type": "object" }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "type": "number" + }, + "ListenerPort": { + "type": "number" + } + }, + "required": [ + "EndpointPort", + "ListenerPort" + ], + "type": "object" + }, "AWS::GlobalAccelerator::Listener": { "additionalProperties": false, "properties": { @@ -45320,7 +45345,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::Component": { + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45352,56 +45377,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "ChangeDescription": { - "type": "string" - }, - "Data": { - "type": "string" - }, - "Description": { - "type": "string" + "Authorized": { + "type": "boolean" }, - "KmsKeyId": { + "LatencyMode": { "type": "string" }, "Name": { "type": "string" }, - "Platform": { - "type": "string" - }, - "SupportedOsVersions": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Uri": { - "type": "string" - }, - "Version": { + "Type": { "type": "string" } }, - "required": [ - "Name", - "Platform", - "Version" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Component" + "AWS::IVS::Channel" ], "type": "string" }, @@ -45415,12 +45414,11 @@ var SamSchema = `{ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration": { + "AWS::IVS::PlaybackKeyPair": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45452,37 +45450,27 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Name": { "type": "string" }, - "Distributions": { - "items": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" - }, - "type": "array" - }, - "Name": { + "PublicKeyMaterial": { "type": "string" }, "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "items": { + "$ref": "#/definitions/Tag" }, - "type": "object" + "type": "array" } }, "required": [ - "Distributions", - "Name" + "PublicKeyMaterial" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::DistributionConfiguration" + "AWS::IVS::PlaybackKeyPair" ], "type": "string" }, @@ -45501,28 +45489,75 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration.Distribution": { + "AWS::IVS::StreamKey": { "additionalProperties": false, "properties": { - "AmiDistributionConfiguration": { + "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" }, - "LicenseConfigurationArns": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "ChannelArn" + ], + "type": "object" }, - "Region": { + "Type": { + "enum": [ + "AWS::IVS::StreamKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::ImageBuilder::Image": { + "AWS::ImageBuilder::Component": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45554,21 +45589,30 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfigurationArn": { + "ChangeDescription": { "type": "string" }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" + "Data": { + "type": "string" }, - "ImageRecipeArn": { + "Description": { "type": "string" }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + "KmsKeyId": { + "type": "string" }, - "InfrastructureConfigurationArn": { + "Name": { + "type": "string" + }, + "Platform": { "type": "string" }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45577,17 +45621,24 @@ var SamSchema = `{ } }, "type": "object" + }, + "Uri": { + "type": "string" + }, + "Version": { + "type": "string" } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" + "Name", + "Platform", + "Version" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Image" + "AWS::ImageBuilder::Component" ], "type": "string" }, @@ -45606,19 +45657,7 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::Image.ImageTestsConfiguration": { - "additionalProperties": false, - "properties": { - "ImageTestsEnabled": { - "type": "boolean" - }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline": { + "AWS::ImageBuilder::DistributionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45653,30 +45692,15 @@ var SamSchema = `{ "Description": { "type": "string" }, - "DistributionConfigurationArn": { - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" - }, - "ImageRecipeArn": { - "type": "string" - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" - }, - "InfrastructureConfigurationArn": { - "type": "string" + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "type": "array" }, "Name": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" - }, - "Status": { - "type": "string" - }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45688,15 +45712,14 @@ var SamSchema = `{ } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn", + "Distributions", "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::ImagePipeline" + "AWS::ImageBuilder::DistributionConfiguration" ], "type": "string" }, @@ -45715,31 +45738,245 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "AWS::ImageBuilder::DistributionConfiguration.Distribution": { "additionalProperties": false, "properties": { - "ImageTestsEnabled": { - "type": "boolean" + "AmiDistributionConfiguration": { + "type": "object" }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline.Schedule": { - "additionalProperties": false, - "properties": { - "PipelineExecutionStartCondition": { - "type": "string" + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "ScheduleExpression": { + "Region": { "type": "string" } }, + "required": [ + "Region" + ], "type": "object" }, - "AWS::ImageBuilder::ImageRecipe": { + "AWS::ImageBuilder::Image": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImagePipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49135,7 +49372,7 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate": { + "AWS::IoTSiteWise::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49167,21 +49404,40 @@ var SamSchema = `{ "Properties": { "additionalProperties": false, "properties": { - "CompatibleNamespaceVersion": { - "type": "number" + "AssetHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" + }, + "type": "array" }, - "Definition": { - "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + "AssetModelId": { + "type": "string" + }, + "AssetName": { + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Definition" + "AssetModelId", + "AssetName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoTThingsGraph::FlowTemplate" + "AWS::IoTSiteWise::Asset" ], "type": "string" }, @@ -49200,23 +49456,493 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "AWS::IoTSiteWise::Asset.AssetHierarchy": { "additionalProperties": false, "properties": { - "Language": { + "ChildAssetId": { "type": "string" }, - "Text": { + "LogicalId": { "type": "string" } }, "required": [ - "Language", - "Text" + "ChildAssetId", + "LogicalId" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "NotificationState": { + "type": "string" + } + }, + "required": [ + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssetModelDescription": { + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "type": "array" + }, + "AssetModelName": { + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AssetModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "type": "string" + }, + "PropertyLogicalId": { + "type": "string" + } + }, + "required": [ + "PropertyLogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GatewayCapabilitySummaries": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" + }, + "type": "array" + }, + "GatewayName": { + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Gateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "additionalProperties": false, + "properties": { + "CapabilityConfiguration": { + "type": "string" + }, + "CapabilityNamespace": { + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + } + }, + "required": [ + "Greengrass" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CompatibleNamespaceVersion": { + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + } + }, + "required": [ + "Definition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTThingsGraph::FlowTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "additionalProperties": false, + "properties": { + "Language": { + "type": "string" + }, + "Text": { + "type": "string" + } + }, + "required": [ + "Language", + "Text" + ], + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -52890,6 +53616,12 @@ var SamSchema = `{ "properties": { "Admins": { "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins" + }, + "TrustedResourceOwners": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -58736,18 +59468,6 @@ var SamSchema = `{ ], "type": "object" }, - "AWS::MediaPackage::OriginEndpoint.AdTriggers": { - "additionalProperties": false, - "properties": { - "AdTriggers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint.Authorization": { "additionalProperties": false, "properties": { @@ -58822,7 +59542,10 @@ var SamSchema = `{ "additionalProperties": false, "properties": { "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58897,7 +59620,10 @@ var SamSchema = `{ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58936,7 +59662,10 @@ var SamSchema = `{ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -68768,18 +69497,6 @@ var SamSchema = `{ }, "type": "object" }, - "AWS::S3::Bucket.ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -69044,9 +69761,6 @@ var SamSchema = `{ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" - }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } @@ -82344,6 +83058,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IVS::Channel" + }, + { + "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair" + }, + { + "$ref": "#/definitions/AWS::IVS::StreamKey" + }, { "$ref": "#/definitions/AWS::ImageBuilder::Component" }, @@ -82422,6 +83145,15 @@ var SamSchema = `{ { "$ref": "#/definitions/AWS::IoTEvents::Input" }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway" + }, { "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate" }, diff --git a/schema/sam.schema.json b/schema/sam.schema.json index c28ff43fd7..640fa1a5b8 100644 --- a/schema/sam.schema.json +++ b/schema/sam.schema.json @@ -22421,6 +22421,9 @@ "properties": { "ExcludeBootVolume": { "type": "boolean" + }, + "NoReboot": { + "type": "boolean" } }, "type": "object" @@ -24726,6 +24729,9 @@ }, "type": "array" }, + "SelfServicePortal": { + "type": "string" + }, "ServerCertificateArn": { "type": "string" }, @@ -24845,6 +24851,9 @@ "properties": { "SAMLProviderArn": { "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "type": "string" } }, "required": [ @@ -30215,12 +30224,6 @@ "AcceptanceRequired": { "type": "boolean" }, - "ApplianceLoadBalancerArns": { - "items": { - "type": "string" - }, - "type": "array" - }, "NetworkLoadBalancerArns": { "items": { "type": "string" @@ -39958,6 +39961,12 @@ "ListenerArn": { "type": "string" }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "type": "array" + }, "ThresholdCount": { "type": "number" }, @@ -40010,6 +40019,22 @@ ], "type": "object" }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "type": "number" + }, + "ListenerPort": { + "type": "number" + } + }, + "required": [ + "EndpointPort", + "ListenerPort" + ], + "type": "object" + }, "AWS::GlobalAccelerator::Listener": { "additionalProperties": false, "properties": { @@ -45317,7 +45342,7 @@ ], "type": "object" }, - "AWS::ImageBuilder::Component": { + "AWS::IVS::Channel": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45349,56 +45374,30 @@ "Properties": { "additionalProperties": false, "properties": { - "ChangeDescription": { - "type": "string" - }, - "Data": { - "type": "string" - }, - "Description": { - "type": "string" + "Authorized": { + "type": "boolean" }, - "KmsKeyId": { + "LatencyMode": { "type": "string" }, "Name": { "type": "string" }, - "Platform": { - "type": "string" - }, - "SupportedOsVersions": { + "Tags": { "items": { - "type": "string" + "$ref": "#/definitions/Tag" }, "type": "array" }, - "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } - }, - "type": "object" - }, - "Uri": { - "type": "string" - }, - "Version": { + "Type": { "type": "string" } }, - "required": [ - "Name", - "Platform", - "Version" - ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Component" + "AWS::IVS::Channel" ], "type": "string" }, @@ -45412,12 +45411,11 @@ } }, "required": [ - "Type", - "Properties" + "Type" ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration": { + "AWS::IVS::PlaybackKeyPair": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45449,37 +45447,27 @@ "Properties": { "additionalProperties": false, "properties": { - "Description": { + "Name": { "type": "string" }, - "Distributions": { - "items": { - "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" - }, - "type": "array" - }, - "Name": { + "PublicKeyMaterial": { "type": "string" }, "Tags": { - "additionalProperties": true, - "patternProperties": { - "^[a-zA-Z0-9]+$": { - "type": "string" - } + "items": { + "$ref": "#/definitions/Tag" }, - "type": "object" + "type": "array" } }, "required": [ - "Distributions", - "Name" + "PublicKeyMaterial" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::DistributionConfiguration" + "AWS::IVS::PlaybackKeyPair" ], "type": "string" }, @@ -45498,28 +45486,75 @@ ], "type": "object" }, - "AWS::ImageBuilder::DistributionConfiguration.Distribution": { + "AWS::IVS::StreamKey": { "additionalProperties": false, "properties": { - "AmiDistributionConfiguration": { + "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" }, - "LicenseConfigurationArns": { - "items": { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ChannelArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } }, - "type": "array" + "required": [ + "ChannelArn" + ], + "type": "object" }, - "Region": { + "Type": { + "enum": [ + "AWS::IVS::StreamKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, "required": [ - "Region" + "Type", + "Properties" ], "type": "object" }, - "AWS::ImageBuilder::Image": { + "AWS::ImageBuilder::Component": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45551,21 +45586,30 @@ "Properties": { "additionalProperties": false, "properties": { - "DistributionConfigurationArn": { + "ChangeDescription": { "type": "string" }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" + "Data": { + "type": "string" }, - "ImageRecipeArn": { + "Description": { "type": "string" }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + "KmsKeyId": { + "type": "string" }, - "InfrastructureConfigurationArn": { + "Name": { + "type": "string" + }, + "Platform": { "type": "string" }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45574,17 +45618,24 @@ } }, "type": "object" + }, + "Uri": { + "type": "string" + }, + "Version": { + "type": "string" } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" + "Name", + "Platform", + "Version" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::Image" + "AWS::ImageBuilder::Component" ], "type": "string" }, @@ -45603,19 +45654,7 @@ ], "type": "object" }, - "AWS::ImageBuilder::Image.ImageTestsConfiguration": { - "additionalProperties": false, - "properties": { - "ImageTestsEnabled": { - "type": "boolean" - }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline": { + "AWS::ImageBuilder::DistributionConfiguration": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -45650,30 +45689,15 @@ "Description": { "type": "string" }, - "DistributionConfigurationArn": { - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "type": "boolean" - }, - "ImageRecipeArn": { - "type": "string" - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" - }, - "InfrastructureConfigurationArn": { - "type": "string" + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "type": "array" }, "Name": { "type": "string" }, - "Schedule": { - "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" - }, - "Status": { - "type": "string" - }, "Tags": { "additionalProperties": true, "patternProperties": { @@ -45685,15 +45709,14 @@ } }, "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn", + "Distributions", "Name" ], "type": "object" }, "Type": { "enum": [ - "AWS::ImageBuilder::ImagePipeline" + "AWS::ImageBuilder::DistributionConfiguration" ], "type": "string" }, @@ -45712,31 +45735,245 @@ ], "type": "object" }, - "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "AWS::ImageBuilder::DistributionConfiguration.Distribution": { "additionalProperties": false, "properties": { - "ImageTestsEnabled": { - "type": "boolean" + "AmiDistributionConfiguration": { + "type": "object" }, - "TimeoutMinutes": { - "type": "number" - } - }, - "type": "object" - }, - "AWS::ImageBuilder::ImagePipeline.Schedule": { - "additionalProperties": false, - "properties": { - "PipelineExecutionStartCondition": { - "type": "string" + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "type": "array" }, - "ScheduleExpression": { + "Region": { "type": "string" } }, + "required": [ + "Region" + ], "type": "object" }, - "AWS::ImageBuilder::ImageRecipe": { + "AWS::ImageBuilder::Image": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ImageRecipeArn", + "InfrastructureConfigurationArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImagePipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49132,7 +49369,7 @@ }, "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate": { + "AWS::IoTSiteWise::Asset": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -49164,21 +49401,40 @@ "Properties": { "additionalProperties": false, "properties": { - "CompatibleNamespaceVersion": { - "type": "number" + "AssetHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" + }, + "type": "array" }, - "Definition": { - "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + "AssetModelId": { + "type": "string" + }, + "AssetName": { + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } }, "required": [ - "Definition" + "AssetModelId", + "AssetName" ], "type": "object" }, "Type": { "enum": [ - "AWS::IoTThingsGraph::FlowTemplate" + "AWS::IoTSiteWise::Asset" ], "type": "string" }, @@ -49197,23 +49453,493 @@ ], "type": "object" }, - "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "AWS::IoTSiteWise::Asset.AssetHierarchy": { "additionalProperties": false, "properties": { - "Language": { + "ChildAssetId": { "type": "string" }, - "Text": { + "LogicalId": { "type": "string" } }, "required": [ - "Language", - "Text" + "ChildAssetId", + "LogicalId" ], "type": "object" }, - "AWS::KMS::Alias": { + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "NotificationState": { + "type": "string" + } + }, + "required": [ + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AssetModelDescription": { + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "type": "array" + }, + "AssetModelName": { + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AssetModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "type": "string" + }, + "PropertyLogicalId": { + "type": "string" + } + }, + "required": [ + "PropertyLogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "GatewayCapabilitySummaries": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" + }, + "type": "array" + }, + "GatewayName": { + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Gateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "additionalProperties": false, + "properties": { + "CapabilityConfiguration": { + "type": "string" + }, + "CapabilityNamespace": { + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + } + }, + "required": [ + "Greengrass" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CompatibleNamespaceVersion": { + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + } + }, + "required": [ + "Definition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTThingsGraph::FlowTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "additionalProperties": false, + "properties": { + "Language": { + "type": "string" + }, + "Text": { + "type": "string" + } + }, + "required": [ + "Language", + "Text" + ], + "type": "object" + }, + "AWS::KMS::Alias": { "additionalProperties": false, "properties": { "DeletionPolicy": { @@ -52887,6 +53613,12 @@ "properties": { "Admins": { "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins" + }, + "TrustedResourceOwners": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -58733,18 +59465,6 @@ ], "type": "object" }, - "AWS::MediaPackage::OriginEndpoint.AdTriggers": { - "additionalProperties": false, - "properties": { - "AdTriggers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "AWS::MediaPackage::OriginEndpoint.Authorization": { "additionalProperties": false, "properties": { @@ -58819,7 +59539,10 @@ "additionalProperties": false, "properties": { "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58894,7 +59617,10 @@ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -58933,7 +59659,10 @@ "type": "string" }, "AdTriggers": { - "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.AdTriggers" + "items": { + "type": "string" + }, + "type": "array" }, "AdsOnDeliveryRestrictions": { "type": "string" @@ -68765,18 +69494,6 @@ }, "type": "object" }, - "AWS::S3::Bucket.ReplicaModifications": { - "additionalProperties": false, - "properties": { - "Status": { - "type": "string" - } - }, - "required": [ - "Status" - ], - "type": "object" - }, "AWS::S3::Bucket.ReplicationConfiguration": { "additionalProperties": false, "properties": { @@ -69041,9 +69758,6 @@ "AWS::S3::Bucket.SourceSelectionCriteria": { "additionalProperties": false, "properties": { - "ReplicaModifications": { - "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" - }, "SseKmsEncryptedObjects": { "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" } @@ -82341,6 +83055,15 @@ { "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" }, + { + "$ref": "#/definitions/AWS::IVS::Channel" + }, + { + "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair" + }, + { + "$ref": "#/definitions/AWS::IVS::StreamKey" + }, { "$ref": "#/definitions/AWS::ImageBuilder::Component" }, @@ -82419,6 +83142,15 @@ { "$ref": "#/definitions/AWS::IoTEvents::Input" }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway" + }, { "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate" },